Boost logo

Boost :

Subject: Re: [boost] Cooperative Multi-Tasking
From: Giovanni Piero Deretta (gpderetta_at_[hidden])
Date: 2010-03-04 05:50:28


On Thu, Mar 4, 2010 at 9:20 AM, Mathias Gaunard
<mathias.gaunard_at_[hidden]> wrote:
> Daniel Larimer wrote:
>
>> I am guessing that Boost.Asio would benefit from such a library.  It seems
>> obvious to me now that coroutines / cooperative multi-tasking is the
>> superior approach to solving problems with a large number of actors and
>> "locks" where heavy weight preemptive scheduling would bog down the system.
>
> A significant advantage of not using coroutines or fibers with Asio is that
> you use as little memory per task as you need, while using a coroutine
> requires having a stack and other context data.
>

GCC supports (experimentally) split stacks
(http://gcc.gnu.org/wiki/SplitStacks ) to let a thread dynamically
grow and shrink its stack size (in principle with frame granularity).

BTW, that project has been implemented to support goroutines in go.

-- 
gpd

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