All Versions
Latest Version
Avg Release Cycle
316 days
Latest Release
1315 days ago

Changelog History
Page 3

  • v0.12.1 Changes

    • ๐Ÿ›  Fix bug in unsetting of exclusive mode
    • ๐Ÿ†• New incident report system for providing better debugging reports
    • โช Revert BasicObject proxies for now... they are causing problems
    • String inspect that reveals bare object leaks
    • ๐Ÿ›  Fix bug reporting proper task statuses
    • ๐ŸŽ‰ Initial thread dumper support
    • โœ‚ Remove Celluloid#alive? as it cannot be called in any manner that will ever return anything but true, rendering it useless
  • v0.12.0 Changes

    • 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
  • v0.11.1 Changes

    • 'exclusive' class method marks methods as always exclusive and runs them outside of a Fiber (useful if you need more stack than Fibers provide)
    • Celluloid::PoolManager returns its own class when #class is called, instead of proxying to a cell/actor in the pool.
    • #receive now handles SystemEvents internally
    • Celluloid::Timers extracted into the timers gem, which Celluloid now uses for its own timers
  • v0.11.0 Changes

    • ๐Ÿšš Celluloid::Application constant permanently removed
    • ๐Ÿšš 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
  • v0.10.0 Changes

    • Celluloid::Actor.current is now the de facto way to obtain the current actor
    • #terminate now uses system messages, making termination take priority over other pending methods
    • #terminate! provides asynchronous termination
  • v0.9.1 Changes

    • Recurring timers with Celluloid#every(n) { ... }
    • Obtain UUIDs with Celluloid.uuid
    • Obtain the number of CPU cores available with Celluloid.cores
    • 0๏ธโƒฃ Celluloid::Pool defaults to one actor per CPU core max by default
  • v0.9.0 Changes

    • Celluloid::Pool supervises pools of actors
    • Graceful shutdown which calls #terminate on all actors
    • Celluloid::Actor.all returns all running actors
    • Celluloid#exclusive runs a high priority block which prevents other methods from executing
    • Celluloid.exception_handler { |ex| ... } defines a callback for notifying exceptions (for use with Airbrake, exception_notifier, etc.)
  • v0.8.0 Changes

    • Celluloid::Application is now Celluloid::Group
    • Futures no longer use a thread unless created with a block
    • No more future thread-leaks! Future threads auto-terminate now
    • ๐Ÿ“‡ Rename Celluloid#async to Celluloid#defer
    • Celluloid#tasks now returns an array of tasks with a #status attribute
    • โฌ‡๏ธ Reduce coupling between Celluloid and DCell. Breaks compatibility with earlier versions of DCell.
    • Celluloid::FSMs are no longer actors themselves
    • Benchmarks using benchmark_suite
  • v0.7.2 Changes

    • โ†ช Workaround fiber problems on JRuby in addition to 1.6.5
    • ๐Ÿ›  Fix class displayed when inspecting dead actors
  • v0.7.1 Changes

    • More examples!
    • Cancel all pending tasks when actors crash
    • ๐Ÿšฆ Log all errors that occur during signaling failures
    • ๐Ÿ‘€ Work around thread-local issues on rbx (see 52325ecd)