boost.png (6897 bytes) Home Libraries People FAQ More



Supported platforms
Case study 1: Win32 Fibers
Case study 2: Linux-x86-GCC
Interaction between coroutines and threads


Coroutines cannot be implemented within the rule of the C++ language. This is also true for threads. But while threads are likely to be incorporated into the next release of the C++ standard, with coroutines we are mostly on our own.

This section will describe the general internal design of Boost.Coroutine and describe the implementation in two different platforms.

Supported platforms

Boost.Coroutine is known to compile on both GCC 3.4.6 and Visual C++ 8.0.

It should work on all windows variants that support the fiber API (that is, all NTs and all windows 9x derivatives since windows 98).

It has specific support for Linux x86 based systems using GCC and zero overhead exception handling (the default). The same implementation should be trivially portable to most BSD derivatives.

For generic Unix systems a makecontext based implementation is provided, but it is not guaranteed to work on all systems. It may also not be 64 bit clean (this should be trivial to fix).

Copyright 2006 Giovanni P. Deretta