I'm in the middle of reading "Windows Internals 6th edition", and after mentioning 32 bit threads running on 64 bit Windows have 3 stacks, one user-mode 32-bit, a 64-bit user-mode, and a kernel-mode stack (along with a 32 bit CONTEXT and a 64 bit CONTEXT "block")--when it proceeds to explain "fibers" (as opposed to threads) it doesn't specify stack/context information.
After threads are converted to fibers for user-mode task scheduling, do they retain the same properties as threads? It seems the book goes on to mention the 64-bit only UMS threads are superior to fibers as they have the kernel-stack (to my understanding)--is this correct?
Finally, since UMS threads are visible to the kernel because they have a kernel stack (the book says "kernel thread state" and I assume it means a stack) does this mean "Fibers" are completely invisible while they perform user-mode scheduling, and appear as a single thread in the application?
If one were to peek at taskmanager running an application using fibers I suppose the question could be answered by the "thread count"?

Thanks if you actually read it all.
5 Years
Discussion Span
Last Post by happyHacker

Not only are fibers invisible to the kernel but they are invisible to all other threads. Fibers can only call other fibers and fibers never exit. Here is a decent article about c++ fiber class.

This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.