Yoi can't move a runnong fiber to anotjer thread. A fiber is simply a stack (+ some registers) that is assigned a thread for execution.
27.09.2023 22:12:57 Niall Douglas via Boost
Dear Boost,
At work I need to move a Boost Fiber from one kernel thread to another. There is a dedicated documentation page for this:
https://www.boost.org/doc/libs/1_83_0/libs/fiber/doc/html/fiber/migration.ht...
What that page doesn't say is how to migrate yourself if you're currently within a Fiber to another kernel thread, as the docs only talk about migrating Fibers currently not executing and in the ready not sleeping state. I guess this would work:
1. Create a new Fiber, and go into a loop giving up the current execution.
2. When that new Fiber executes, migrate the original fiber to its new kernel thread, then have it exit the loop so it proceeds. Then self immolate, as you're done.
But now you're creating and destroying a whole Fiber just to migrate a Fiber between kernel threads, and that feels icky.
I don't suppose there's a better way e.g. some sort of way of asking the current thread's Fiber scheduler to call a function when it's next not executing a Fiber? That would avoid the needless Fiber creation and destruction per migration of a Fiber across kernel threads.
Thanks for help in advance.
Niall
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost