class Concurrent::Promises::AbstractFlatPromise

def initialize(delayed_because, blockers_count, event_or_future)

def initialize(delayed_because, blockers_count, event_or_future)
  delayed = LockFreeStack.of1(self)
  super(delayed, blockers_count, event_or_future)
  # noinspection RubyArgCount
  @Touched        = AtomicBoolean.new false
  @DelayedBecause = delayed_because || LockFreeStack.new
  event_or_future.add_callback_clear_delayed_node delayed.peek
end