2015-09-05 16:36 GMT+02:00 Thomas Heller
Oliver, do you mind providing the rationale for why fiber migration has been dropped or point me to the section in the docs discussing this?
of course, the documentation has a short description in the rational section (http://olk.github.io/libs/fiber/doc/html/fiber/rationale.html). I refer to Giovanni's more detailed explanation ( http://www.crystalclearsoftware.com/soc/coroutine/coroutine/coroutine_thread... ). because of compiler optimization the address of TLS might be pre-calculated, the access to TLS might be moved out of a loop, etc. even if boost.fiber would not use TLS (keyword thread_local), the usage of TLS in the user-code (executed by a fiber) is not permitted - this is an unacceptable restriction for users. I suggest a pattern like boost.job proposes - on a logical processors a worker-thread is pinned, running a pool of fibers (boost. job uses some aspects of NUMA architectures). The jobs can be synchronized by classes from boost.fiber.