Boost logo

Boost :

Subject: Re: [boost] [context] ready
From: Oliver Kowalke (oliver.kowalke_at_[hidden])
Date: 2011-11-08 17:15:02


hi

Am 08.11.2011 18:22, schrieb GOODHART, TAYLOR:
> 1.) Impressive performance. Did you write some assembly for each
> platform to avoid having to swap out the signal masks and floating point
> context?

yes - currently supported: i386, x86_64, mips, arm, powerpc
store/restore of the signal mask is not done
and only required floating point stuff is preserved (like x87 control
word on x86 etc.)

> Cons:
> 1.) Void * argument passing. Perhaps there's some limitation
> that requires this. If so, then I'd be curious to read about it in the
> Rationale section. Even then, some syntactical sugar to hide the static
> cast may not be bad.
> 2.) Function pointers only? It looks like the library only
> accepts function pointers, not bound functions, functors, or lambdas. I
> suspect this is related to the fact that makecontext() accepts raw
> function pointers. Nevertheless, I've come to expect the ability to pass
> an arbitrary "callable" argument to boost libraries. If this is
> unreasonable, then I'd be curious to learn why in the Rationale section.

maybe you refer to the basic API
boost_fcontext_jump()/boost_fcontext_make() etc?
this interface is intended to be small as possible and was modelled like
makecontext()/swapcontext() stuff.

function pointers, bound functions, functors etc. can be used with the
boost::context class (ctor similiar to boost::thread).

the docu contains some out-dated infos - I've to update it.

Oliver


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk