Celluloid is a concurrent object oriented programming framework for Ruby

http://celluloid.io/

Celluloid 0.11.0 makes a few sweeping API changes due to some
real-world problems that crept up with the previous API.

Celluloid::Pool has been removed, in favor of a new Celluloid.pool API
that can be used on any class that includes Celluloid. This means no
extra effort is needed on the part of someone who wants a single actor
or a pool of actors. Pools are inherently supervised and will
automatically restart workers that crash, however they can also be
included in supervision hierarchies.

The following methods have been added directly to the Celluloid proxy
and cannot be overridden:

* join: analogue of Thread.join, suspends the current thread until a
given actor has exited
* kill: force terminate an actor

This has already caused a few problems with people who have defined
"join" on actors. I'm afraid I don't have a solution for this at
present :( If this is a big enough problem I may consider removing
#join.

--

Full changelog:

* Celluloid::Application constant permanently removed, please use
Celluloid::SupervisionGroup
* Celluloid::Pool removed in favor of Celluloid.pool
* Celluloid::Group renamed to Celluloid::SupervisionGroup, old name is
still available and has not been deprecated
* Celluloid::ThreadPool renamed to Celluloid::InternalPool to
emphasize its internalness
* Support for asynchronously calling private methods inside actors
* Future is now an instance method on all actors
* Async call exception logs now contain the failed method
* MyActor#async makes async calls for those who dislike the predicate syntax
* abort can now accept a string instead of an exception object and
will raise RuntimeError in the caller's context

--
Tony Arcieri