Method: Contender::FutureTask#result
- Defined in:
- lib/contender/future_task.rb
#result(timeout = nil) ⇒ Object
Returns The result of the future.
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/contender/future_task.rb', line 51 def result(timeout = nil) @mutex.synchronize do unless done? @condition.wait @mutex, timeout unless done? raise TimeoutError, 'The operation did not complete before the given timeout' end end if @state == :cancelled raise CancellationError, 'Task was cancelled before it could be completed' end end if @exception raise ExecutionError, @exception end @result end |