
On Mon, Jan 9, 2012 at 5:36 PM, Robert Ramey <ramey@rrsd.com> wrote:
Giovanni Piero Deretta wrote:
On Mon, Jan 9, 2012 at 12:58 AM, Robert Ramey <ramey@rrsd.com> wrote:
Note that Boost.Context has a much more comprehensive set of backends: while Boost.Coroutine only had a Linux x86 asm backend and relied on fibers or makecontext for portability,
I"m a window ms user and I found this unsatisfactory so I re-implemented the context switch in inline assembly. This had the effect of making the library header only. Is it really necessary that Boost.Context be a compiled library?
IIRC, at least on amd64 VC++ does not allow inline assembly at all. With GCC, you could probably write some working inline assembly, but any compiler upgrade (or even optimization flag) could break it at any moment as jumping out of inline assember is forbidden. Getting the correct register clobbering flags is also non-trivial. -- gpd