Boost logo

Boost :

Subject: Re: [boost] [context review] Review starts next Monday, Mars 21st
From: Oliver Kowalke (oliver.kowalke_at_[hidden])
Date: 2011-03-20 06:03:34


Am 19.03.2011 13:04, schrieb Vicente BOTET:
> Hi all,
>
> The review of Oliver Kowalke Context library starts next Monday Mars 21st 2011, and will end on Mars 30th.
>
> Boost.Context is a basic building block library that is used for more higher abstractions. It is used by Boost.Fiber, Boost.Tasklet and Boost.Task from the same author.
>
> I really hope to see your vote and your participation in the discussions on
> the Boost DEVELOPMENT mailing lists! Please use [context review] as prefix of your post to make easier the review follow up.
>
> You can already download a frozen version for the review from the Vault, TinyURL: http://tinyurl.com/5r77rel or
>
>
>
>
> ---------------------------------------------------
>
> About the library:
>
> Boost.Context provides a possibility to switch between different user-level context and is intended to be the basis for a higher abstraction like coroutine and fiber.
>
> A user-level context represents the current execution state, including all registers and CPU flags, the instruction pointer, the stack pointer. boost::context encapsulates such a user-level context and is able to store/restore its associated user-level context. This allows multiple execution paths running on a single thread using a sort of cooperative scheduling (in contrast a thread is preemptively scheduled) - the running boost::context decides explicitly when its yields to allow another boost::context to run (user-level context switching). A context can only run on a single thread at any point in time but may be migrated between thread.
>
> A context switch between threads costs usually thousands of CPU cycles on x86 compared to a user-level context switch with few hundreds of cycles.
>
> Boost.Context differes to setjmp()/longjmp() in the fact that the C99 standard does not require that longjmp() preserves the current stack frame, e. g. jumping into a function which was exited via a call to longjmp() is undefined.
>
> Boost.Context allows to select the mechanism provided by the operating system (ucontext on UNIX, Windows Fibers on Windows) or a faster implementation provided by this library (fcontext using assembler).
>
> ---------------------------------------------------
>
> Please always state in your review, whether you think the library should be
> accepted as a Boost library!
>
> Additionally please consider giving feedback on the following general
> topics:
>
> - What is your evaluation of the design?
> - What is your evaluation of the implementation?
> - What is your evaluation of the documentation?
> - What is your evaluation of the potential usefulness of the library?
> - Did you try to use the library? With what compiler? Did you have any
> problems?
> - How much effort did you put into your evaluation? A glance? A quick
> reading? In-depth study?
> - Are you knowledgeable about the problem domain?
>
> Regards Vicente
> Review Manager
> _______________________________________________
> Unsubscribe& other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
>
>

docu is available here:
http://ok73.ok.funpic.de/boost/libs/context/doc/html/


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