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