class Concurrent::Delay
def value(timeout = nil)
-
(Object)
- the current value of the object
Parameters:
-
timeout
(Numeric
) -- the maximum number of seconds to wait
def value(timeout = nil) if @executor # TODO (pitr 12-Sep-2015): broken unsafe read? super else # this function has been optimized for performance and # should not be modified without running new benchmarks synchronize do execute = @evaluation_started = true unless @evaluation_started if execute begin set_state(true, @task.call, nil) rescue => ex set_state(false, nil, ex) end elsif incomplete? raise IllegalOperationError, 'Recursive call to #value during evaluation of the Delay' end end if @do_nothing_on_deref @value else apply_deref_options(@value) end end end