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
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.
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|