code: private void handleAsyncComplete(boolean forceQueue, TCPReadCompletedCallback inCallback) {
          boolean fireHere = true;
          if (forceQueue) {
              // Complete must be returned on a separate thread.
              // Reuse queuedWork object (performance), but reset the error parameters.
              queuedWork.setCompleteParameters(getConnLink().getVirtualConnection(), this, inCallback);
  
              EventEngine events = SSLChannelProvider.getEventService();
              if (null == events) {
                  Exception e = new Exception("missing event service");
                  FFDCFilter.processException(e, getClass().getName(), "471", this);
                  // fall-thru below and use callback here regardless
              } else {
                  // fire an event to continue this queued work
                  Event event = events.createEvent(SSLEventHandler.TOPIC_QUEUED_WORK);
                  event.setProperty(SSLEventHandler.KEY_RUNNABLE, this.queuedWork);
                  events.postEvent(event);
                  fireHere = false;
              }
          }
          if (fireHere) {
              // Call the callback right here.
              inCallback.complete(getConnLink().getVirtualConnection(), this);
          }
      }
docs: This method handles calling the complete method of the callback as required by an async
  read. Appropriate action is taken based on the setting of the forceQueue parameter.
  If it is true, the complete callback is called on a separate thread. Otherwise it is
  called right here.
  
  @param forceQueue
  @param inCallback