lib/punchblock/translator/freeswitch.rb in punchblock-1.6.1 vs lib/punchblock/translator/freeswitch.rb in punchblock-1.7.0
- old
+ new
@@ -6,10 +6,11 @@
module Punchblock
module Translator
class Freeswitch
include Celluloid
include HasGuardedHandlers
+ include DeadActorSafety
extend ActiveSupport::Autoload
autoload :Call
autoload :Component
@@ -63,10 +64,11 @@
end
register_handler :es, [:has_key?, :other_leg_unique_id] => true do |event|
call = call_with_id event[:other_leg_unique_id]
call.handle_es_event! event if call
+ throw :pass
end
register_handler :es, lambda { |event| es_event_known_call? event } do |event|
call = call_with_id event[:unique_id]
call.handle_es_event! event
@@ -76,10 +78,14 @@
def stream
connection.stream
end
def finalize
- @calls.values.each(&:terminate)
+ @calls.values.each do |call|
+ safe_from_dead_actors do
+ call.terminate
+ end
+ end
end
def handle_es_event(event)
trigger_handler :es, event
end