123456789_123456789_123456789_123456789_123456789_

Class: Concurrent::Promises::RescuePromise

Constant Summary

InternalStates - Included

PENDING, RESERVED, RESOLVED

Class Attribute Summary

Class Method Summary

BlockedTaskPromise - Inherited

BlockedPromise - Inherited

AbstractPromise - Inherited

Synchronization::Object - Inherited

.atomic_attribute?, .atomic_attributes,
.attr_atomic

Creates methods for reading and writing to a instance variable with volatile (Java) semantic as .attr_volatile does.

.attr_volatile

Creates methods for reading and writing (as attr_accessor does) to a instance variable with volatile (Java) semantic.

.ensure_safe_initialization_when_final_fields_are_present

For testing purposes, quite slow.

.new

Has to be called by children.

.safe_initialization!, .define_initialize_atomic_fields

Synchronization::AbstractObject - Inherited

Instance Method Summary

Constructor Details

.new(delayed, blockers_count, default_executor, executor, args, &task) ⇒ RescuePromise (private)

[ GitHub ]

  
# File 'lib/concurrent-ruby/concurrent/promises.rb', line 1751

def initialize(delayed, blockers_count, default_executor, executor, args, &task)
  super delayed, blockers_count, default_executor, executor, args, &task
end

Instance Method Details

#on_resolvable(resolved_future, index) (private)

[ GitHub ]

  
# File 'lib/concurrent-ruby/concurrent/promises.rb', line 1755

def on_resolvable(resolved_future, index)
  if resolved_future.rejected?
    Concurrent.executor(@Executor).post(resolved_future, @Args, @Task) do |future, args, task|
      evaluate_to lambda { future.apply args, task }
    end
  else
    resolve_with resolved_future.internal_state
  end
end