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