|
|
@ -28,7 +28,10 @@ namespace Common {
|
|
|
|
* to implement such patterns. This fiber class is 'threadsafe' only one fiber
|
|
|
|
* to implement such patterns. This fiber class is 'threadsafe' only one fiber
|
|
|
|
* can be running at a time and threads will be locked while trying to yield to
|
|
|
|
* can be running at a time and threads will be locked while trying to yield to
|
|
|
|
* a running fiber until it yields. WARNING exchanging two running fibers between
|
|
|
|
* a running fiber until it yields. WARNING exchanging two running fibers between
|
|
|
|
* threads will cause a deadlock.
|
|
|
|
* threads will cause a deadlock. In order to prevent a deadlock, each thread should
|
|
|
|
|
|
|
|
* have an intermediary fiber, you switch to the intermediary fiber of the current
|
|
|
|
|
|
|
|
* thread and then from it switch to the expected fiber. This way you can exchange
|
|
|
|
|
|
|
|
* 2 fibers within 2 different threads.
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
class Fiber {
|
|
|
|
class Fiber {
|
|
|
|
public:
|
|
|
|
public:
|
|
|
|