celluloid/celluloid — pull request #317 by ryanlchan (2013-08-17 20:12:27+00:00)
Title: Refactor Pools using message API

While working on my own background queuing solution, [WindUp](https://github.com/ryanlchan/wind_up), I ended up reimplementing Celluloid.pool using the message API. The result is a drop-in replacement for pools, with a few changes:

* Asynchronous message passing - using Celluloid's Messaging API means
any blocking call (i.e. #sleep, Celluloid::IO, etc) allows the actor to
process another message
* Separate proxies for PoolManager and pools - no more unexpected behavior
between #is_a? and #class and #responds_to?

Separating the proxies *may* cause some incompatibilities, but I haven't yet found any.

Let me know if this should wait for issue #291 (behavior separation) to complete.