class Concurrent::Promises::ZipFutureEventPromise
def initialize(delayed, blockers_count, default_executor)
def initialize(delayed, blockers_count, default_executor) super delayed, 2, Future.new(self, default_executor) @result = nil end
def on_resolvable(resolved_future, index)
def on_resolvable(resolved_future, index) resolve_with @result end
def process_on_blocker_resolution(future, index)
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