From: Tony Arcieri Date: 2011-06-20T13:30:35+09:00 Subject: Re: [ANN] celluloid 0.0.3: a concurrent object framework for Ruby --20cf3033451d2fc80c04a61d3251 Content-Type: text/plain; charset=ISO-8859-1 On Sat, Jun 18, 2011 at 4:39 PM, Tony Arcieri wrote: > Hmmmmmmmmmmm! > > I think the best approach would be to wrap the dispatching of incoming > calls in a fiber. Whenever that fiber makes an outgoing call to another > actor, it defers back to the central receive loop which processes the > mailbox. This would let an actor continue processing incoming calls while > waiting for a response to a call. > > You're actually the second person I've talked to who's proposed this in > regard to handling circular call chains, the other person was Steven > Parkes who created the Dramatis actor framework. At the time I had my head > in Reia/Erlang, where gen_server state is pure functional and immutable and > there would really be no way to implement this sort of approach. In a > language like Ruby, though, it's possible, and would actually be quite > similar to what you could do with plain old Ruby objects. > If you check HEAD on Github, Celluloid now supports circular call graphs by using fibers to dispatch methods: https://github.com/tarcieri/celluloid -- Tony Arcieri --20cf3033451d2fc80c04a61d3251--