Method: Concurrent::SafeTaskExecutor#execute

Defined in:
lib/concurrent/executor/safe_task_executor.rb

#execute(*args) ⇒ Array

Returns:



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/concurrent/executor/safe_task_executor.rb', line 18

def execute(*args)
  synchronize do
    success = false
    value   = reason = nil

    begin
      value   = @task.call(*args)
      success = true
    rescue @exception_class => ex
      reason  = ex
      success = false
    end

    [success, value, reason]
  end
end