Boost logo

Boost :

Subject: Re: [boost] [context] new version - support for Win64
From: vicente.botet (vicente.botet_at_[hidden])
Date: 2011-01-15 13:02:47

----- Original Message -----
From: "Oliver Kowalke" <k-oli_at_[hidden]>
To: <boost_at_[hidden]>
Sent: Thursday, December 16, 2010 9:06 PM
Subject: [boost] [context] new version - support for Win64

> I've uploaded to boost vault.
> The new version supports the context-/stack- swapping provided by the OS
> (ucontext ABI on UNIX, Fiber ABI on Windows) as well a fast context
> swapping (using assembler).
> supported platforms: i386, x86_64, arm, mips, ppc
> OS: UNIX, Windows (32 bit/64 bit)
> More details can be found in the documentation (included in the archive).

I have take a look to the documentation and I have some comments.

* The sentence in the Overview "(threads are preemptively scheduled)" could be misleading as the code will in any case be run on a thread.
* The documentation lacks a clear motivation for the end user. If the library is a too low level one, maybe you could add the more high level libraries that could be built on top of contexts.
* How is this related to setjmp/longjmp?
* How exceptions are propagated when calling to jump_to()?
* Why do you need a ::create function?
boost::context g()
   return boost::context::create(
     f, 0, boost::context::default_stacksize);

why not just
boost::context g()
   return boost::context(
    f, 0, boost::context::default_stacksize);

* Could you clarify your sentence "Frame-unwind-tables instead of setjmp/longjmp based exception handling must be used in order to catch exception inside called function."
* Some examples on the user space. A traffic light controller could show that it is possible to do it, but that more high level abstractions are needed.
* Other examples of the use of the next context
* Performances comparison between fiber and fcontext will be welcome


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