
If the fibers are not moved to other worker-threads this shouldn't be an issue - right?
No. The problem is if I am a task running on a worker thread, and I call future::get(), if another task/fiber gets scheduled on my thread then it inherits my locks, thread-local variables and thread ID.
But this seams to me consistent. Because both fibers run on the same thread they should see the same thread ID, the same thread-specific storage. Only inheriting locks seams to be odd at the first look - but this should also be ok because the locks prevent access of other threads. Only if the lock is released twice by the fiber code - nedd to think about this issue.
Also, I just remembered that on Windows prior to Vista, SwitchToFiber will not preserve floating-point registers and state. On Vista, you have to specify FIBER_FLAG_FLOAT_SWITCH in the CreateFiberEx call in order to enable this. I don't know how much of a problem that is in practice.
I didn't read this in the MSDN :( I'll search for it. regards, Oliver -- "Feel free" - 5 GB Mailbox, 50 FreeSMS/Monat ... Jetzt GMX ProMail testen: http://www.gmx.net/de/go/promail