Boost
C++ Libraries
...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
This is an older version of Boost and was released in 2022. The current version is 1.89.0.
Boost.Fiber uses call/cc from Boost.Context as building-block.
The implementation uses fcontext_t
per default. fcontext_t is based on assembler and not available for all platforms.
It provides a much better performance than ucontext_t
(the context switch takes two magnitudes of order less CPU cycles; see section
performance)
and WinFiber.
As an alternative, ucontext_t can be used by compiling
with BOOST_USE_UCONTEXT and
b2 property context-impl=ucontext.
ucontext_t might be available
on a broader range of POSIX-platforms but has some disadvantages
(for instance deprecated since POSIX.1-2003, not C99 conform).
![]() |
Note |
|---|---|
call/cc
supports Segmented stacks
only with |
With BOOST_USE_WINFIB and
b2 property context-impl=winfib
Win32-Fibers are used as implementation for call/cc.
Because the TIB (thread information block) is not fully described in the MSDN, it might be possible that not all required TIB-parts are swapped.
![]() |
Note |
|---|---|
The first call of call/cc
converts the thread into a Windows fiber by invoking |