code: public synchronized void reset(Channel channel, boolean cancellable) {
          this.channel = channel;
          this.cancellable = cancellable;
  
          assert this.firstListener == null;
          assert this.otherListeners == null || this.otherListeners.isEmpty();
          assert this.progressListeners == null || this.progressListeners.isEmpty();
          this.done = false;
          this.cause = null;
          assert this.waiters == 0;
      }
docs: Creates a new instance.
  
  @param channel
  the {@link Channel} associated with this future
  @param cancellable
  {@code true} if and only if this future can be canceled