This is probably the most naive reply ever, so I'll keep it brief.

I could imagine that on creation, a UUID could be created using boost::uuid. Using boost::interprocess, the fiber_manager could be put into a named shared memory, the name of which is the UUID. The UUID is then passed to any fiber upon creation so that all it needs to do is open the named interprocess pool to access the fiber_manager.

A big redesign? Maybe, I haven't looked at the library. But maybe there is something of value in that concept. I have had to do something similar and more complex myself recently to update legacy 16-bit code that migrated things between processes that it shouldn't have.

On 9/6/2015 4:19 PM, Nat Goodspeed wrote:
Oliver has requested help overcoming the TLS optimization/bug. It
would be wonderful if one of you requesting support for fiber
migration would be willing to suggest a way for a given fiber to
robustly locate the fiber_manager, and so forth.