docs: @Override
    public final void shutdown(final Status status) {
      synchronized (lock) {
        if (shutdownStatus != null) {
          return;
        }
        shutdownStatus = status;
        syncContext.executeLater(new Runnable() {
            @Override
            public void run() {
              listener.transportShutdown(status);
            }
          });
        if (!hasPendingStreams() && reportTransportTerminated != null) {
          syncContext.executeLater(reportTransportTerminated);
          reportTransportTerminated = null;
        }
      }
      syncContext.drain();
    }