lib/celluloid/supervisor.rb in celluloid-0.10.0 vs lib/celluloid/supervisor.rb in celluloid-0.11.0

- old
+ new

@@ -6,22 +6,31 @@ trap_exit :restart_actor # Retrieve the actor this supervisor is supervising attr_reader :actor - def self.supervise(klass, *args, &block) - new(nil, klass, *args, &block) - end + class << self + # Define the root of the supervision tree + attr_accessor :root - def self.supervise_as(name, klass, *args, &block) - new(name, klass, *args, &block) + def supervise(klass, *args, &block) + new(nil, klass, *args, &block) + end + + def supervise_as(name, klass, *args, &block) + new(name, klass, *args, &block) + end end def initialize(name, klass, *args, &block) @name, @klass, @args, @block = name, klass, args, block @started = false start_actor + end + + def finalize + @actor.terminate if @actor and @actor.alive? end def start_actor(start_attempts = 3, sleep_interval = 30) failures = 0