Boost logo

Boost :

Subject: [boost] [context] future design
From: Oliver Kowalke (oliver.kowalke_at_[hidden])
Date: 2011-04-07 16:48:52


modifications I've made:

- context:
   - stack unwinding:
       bool context::finished() const indicating that the called
function has finished
       -> stack already unwinded
       boid context::unwind_stack() jump back into context and throw a
special exception
       -> stack will be unwinded (requires that no try/catch(...) was used)
   - context is now moveable
   - is not a template == the stack type is only passed/known in the
templated ctor
   - the function to be called by the context is not saved on top of the
   - exceptions replaced by assertions / exceptions.hpp removed
   - fcontext_t used as default implementation; ucontext_t only fallback
for platforms not supported by fcontext_t
   - on Windows Win Fiber API is used as default

- protected stack:
   - keyword explicit added to ctor
   - public static members min_stacksize, max_stacksize, default_stacksize

- fcontext_t renamed to boost_fcontext_t, boost_fcontext_get(),
boost_fcontext_set(), boost_fcontext_jump(), boost_fcontext_make()

- i386 ASM preserves SSE2 control/status word

- x86 ASM uses indirect jump for boost_fcontext_set() and

code is available at git://
branch context-dev.

@Vicente: could you check your SPAM filter , please (I've send several
eMails to you).

best regards,

Boost list run by bdawes at, gregod at, cpdaniel at, john at