@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;
        }
    }
@ 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 ; } }
Call this method to reuse a future after it has been completed