code: @Override
      public void reset(IoSession session) {
          synchronized (lock) {
              if (!ready && this.session != null) {
                  throw new IllegalStateException("Cannot reset a future that has not yet completed");
              }
  
              this.session = session;
              this.firstListener = null;
              this.otherListeners = null;
              this.result = null;
              this.ready = false;
              this.waiters = 0;
          }
      }
docs: Call this method to reuse a future after it has been completed