class Concurrent::SimpleActorRef
def process_message(message)
def process_message(message) result = ex = nil begin result = @actor.receive(*message.payload) rescue @exception_class => ex @actor.on_error(Time.now, message.payload, ex) if @reset_on_error @mutex.synchronize{ @actor = @actor.class.new(*@args) } end ensure now = Time.now message.ivar.complete(ex.nil?, result, ex) begin message.callback.call(now, result, ex) if message.callback rescue @exception_class => ex # suppress end end end