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