class Concurrent::Promise
def set(value = NULL, &block)
-
(Concurrent::PromiseExecutionError)
- if not the root promise
def set(value = NULL, &block) raise PromiseExecutionError.new('supported only on root promise') unless root? check_for_block_or_value!(block_given?, value) synchronize do if @state != :unscheduled raise MultipleAssignmentError else @promise_body = block || Proc.new { |result| value } end end execute end