From: MenTaLguY Date: 2007-09-28T05:16:35+09:00 Subject: Re: Fibers as semi-coroutines enabled by default On Fri, 28 Sep 2007 04:20:29 +0900, SASADA Koichi wrote: >> It could be a good idea, as long as you're careful to keep things >> simple and follow an established formalism. I'd personally >> recommend the asynchronous pi calculus, which is very simple and >> is used in Rubinius core for concurrency. > > I think Fiber/Coroutine should be synchronous. After all, it's > overkill for simple feature. This is important that we can make > scheduler, mailbox, asynchronous model framework, etc on user-level > (ruby-level). Rich features such as mailbox should be implemented > outside Fiber. Channels can be asynchronous even if the implementation of "process" (fiber) is synchronous. But a channel implies some kind of scheduling by definition. If you don't want scheduling at the fiber, level, then channels probably don't belong at the fiber level (Rubinius has them at the thread level). -mental