code: @Override
      public void close(VirtualConnection inVC, Exception e) {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) {
              Tr.entry(tc, "close, vc=" + getVCHash());
          }
  
          // Set closed flag so that ready can't be called again in an error condition.
          // This is a protective measure.
          closed = true;
  
          // Clean up the read and write interfaces as well as the SSL engine.
  
          // cleanup has logic to avoid writing if stop(0) has been called
          cleanup();
  
          //If the channel has already processed the close signal, it is too late to try and clean up the individual connection links here.
          //This race condition should not happen if channels above us are well behaved, so not using synchronize logic here, so as not to
          //impact mainline performance.
          if (this.sslChannel.getstop0Called() != true) {
              if (getDeviceLink() != null) {
                  getDeviceLink().close(inVC, e);
              }
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) {
              Tr.exit(tc, "close");
          }
      }
docs: /*
  @see com.ibm.wsspi.channelfw.base.OutboundProtocolLink#close(com.ibm.wsspi.channelfw.VirtualConnection, java.lang.Exception)