code: @Override
      protected void immediateTimeout() {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEventEnabled()) {
              Tr.event(this, tc, "immediateTimeout");
          }
  
          // if we do not have a selector, then there has not been a read yet
          // on this connection. If we have a selector, it doesn't mean there's
          // an active read; however, waking up the selector with a false timeout
          // attempt is not optimal but not a big deal
          ChannelSelector sel = ((NioSocketIOChannel) getTCPConnLink().getSocketIOChannel()).getChannelSelectorRead();
          if (null != sel) {
              // selector uses granularity of 1 second, so subtract 2 seconds
              // to guarantee the timeout will fire immediately
              this.timeoutTime = System.currentTimeMillis() - 2000L;
              sel.resetTimeout(this.timeoutTime);
          } else {
              if (TraceComponent.isAnyTracingEnabled() && tc.isEventEnabled()) {
                  Tr.event(tc, "No read selector, ignoring immediate timeout");
              }
          }
  
      }
docs: /*
  @see
  com.ibm.ws.tcpchannel.internal.TCPReadRequestContextImpl#immediateTimeout()