class Concurrent::Promises::ZipFutureEventPromise

Public Class Methods

new(delayed, blockers_count, default_executor) click to toggle source
# File lib/concurrent-ruby/concurrent/promises.rb, line 1942
def initialize(delayed, blockers_count, default_executor)
  super delayed, 2, Future.new(self, default_executor)
  @result = nil
end

Private Instance Methods

on_resolvable(resolved_future, index) click to toggle source
# File lib/concurrent-ruby/concurrent/promises.rb, line 1956
def on_resolvable(resolved_future, index)
  resolve_with @result
end
process_on_blocker_resolution(future, index) click to toggle source
# File lib/concurrent-ruby/concurrent/promises.rb, line 1949
def process_on_blocker_resolution(future, index)
  # first blocking is future, take its result
  @result = future.internal_state if index == 0
  # super has to be called after above to piggyback on volatile @Countdown
  super future, index
end