
On Thu, Mar 4, 2010 at 9:20 AM, Mathias Gaunard <mathias.gaunard@ens-lyon.org> 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