|
Boost : |
Subject: [boost] [context] future design
From: Oliver Kowalke (oliver.kowalke_at_[hidden])
Date: 2011-04-07 16:48:52
Hello,
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
stack
- 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
boost_fcontext_jump()
code is available at git://git.gitorious.org/boost-dev/boost-dev.git
branch context-dev.
@Vicente: could you check your SPAM filter , please (I've send several
eMails to you).
best regards,
Oliver
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk