Celluloid v0.12.0 Release Notes

    • Alternative async syntax: actor.async.method in lieu of actor.method! Original syntax still available but will be removed in Celluloid 1.0
    • Alternative future syntax: actor.future.method in lieu of future(:method)
    • All methods in the Celluloid module are now available on its singleton
    • The #join and #kill methods are no longer available on the actor proxy. Please use Celluloid::Actor.join(actor) and .kill(actor) instead.
    • Celluloid::Future#ready? can be used to query for future readiness
    • ๐Ÿšš Celluloid::Group constant removed. Please use Celluloid::SupervisionGroup
    • #monitor, #unmonitor, and #monitoring? provide unidirectional linking
    • ๐Ÿ”— Linking is now performed via a SystemEvent
    • SystemEvents are no longer exceptions. Boo exceptions as flow control!
    • Celluloid::Mailbox#system_event eliminated and replaced with Mailbox#<< SystemEvents are now automatically high priority
    • The task_class class method can be used to override the class used for tasks, allowing different task implementations to be configured on an actor-by-actor-basis
    • Celluloid::TaskThread provides tasks backed by Threads instead of Fibers
    • ActorProxy is now a BasicObject
    • A bug prevented Celluloid subclasses from retaining custom mailboxes defined by use_mailbox. This is now fixed.
    • exclusive class method without arguments makes the whole actor exclusive