code: @Override
      public int cancel2(long channelId, long callId) throws AsyncException {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) {
              Tr.entry(tc, "cancel2: channel = " + channelId + " call id = " + callId);
          }
          int rc = 0;
          synchronized (oneAtATime) {
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                  Tr.debug(tc, "have lock");
              }
              if (aioInitialized == AIO_INITIALIZED) {
                  try {
                      // Ask the native code to perform a cancel operation
                      rc = aio_cancel2(channelId, callId);
                  } catch (Throwable t) {
                      if (aioInitialized != AIO_SHUTDOWN) {
                          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                              Tr.debug(tc, "caught throwable:" + t);
                          }
                          throw new AsyncException("Throwable caught from aio dll: aio_cancel2: " + t.getMessage());
                      }
                  }
              }
          } // end-sync
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) {
              Tr.exit(tc, "cancel2: " + rc);
          }
          return rc;
      }
docs: /*
  @see com.ibm.io.async.IAsyncProvider#cancel2(long, long)