Method: Garcon::SafeTaskExecutor#execute

Defined in:
lib/garcon/task/safe_task_executor.rb

#execute(*args) ⇒ Array

Returns:



41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/garcon/task/safe_task_executor.rb', line 41

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

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

    [success, value, reason]
  end
end