Go to file
Daniela Engert 05c7f1ea1a
Inheriting std::iterator is deprecated in C++17
Therefore replace inheritance by lifting std::iterator's members into the derived class.

Signed-off-by: Daniela Engert <dani@ngrt.de>
2018-01-01 19:29:48 +01:00
build add feature-defect macro for std::regex 2017-11-06 18:00:23 +01:00
doc NUMA: pin thread to CPU via std:🧵:native_handle() 2017-12-29 06:34:35 +01:00
examples examples: barrier sync. threads renamed to thead_barrier 2017-11-17 10:05:53 +01:00
include/boost/fiber inheriting std::iterator is deprecated in C++17 2018-01-01 19:22:38 +01:00
meta fix meta infos 2016-11-22 19:59:10 +01:00
performance reset stack-size to 4kB/8kB for skynet-tests 2017-06-10 16:33:01 +02:00
src Inheriting std::iterator is deprecated in C++17 2018-01-01 19:29:48 +01:00
test disable pin-thread tests 2017-12-30 08:36:14 +01:00
.gitignore ignore cscope files 2013-01-01 15:29:11 +01:00
.travis.yml Add Mac OS X jobs to Travis 2017-11-08 15:30:20 +02:00
index.html add index.htm 2016-06-07 08:14:02 +02:00
README.md Fix typos in README.md 2016-11-17 14:41:31 +01:00

boost.fiber

boost.fiber provides a framework for micro-/userland-threads (fibers) scheduled cooperatively. The API contains classes and functions to manage and synchronize fibers similiar to boost.thread.

A fiber is able to store the current execution state, including all registers and CPU flags, the instruction pointer, and the stack pointer and later restore this state. The idea is to have multiple execution paths running on a single thread using a sort of cooperative scheduling (threads are preemptively scheduled) - the running fiber decides explicitly when it yields to allow another fiber to run (context switching).

A context switch between threads costs usally thousands of CPU cycles on x86 compared to a fiber switch with less than 100 cycles. A fiber can only run on a single thread at any point in time.

boost.fiber requires C++11!