docs: protected void _closeProducerDestinationDeleted()
    {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.entry(tc, "_closeProducerDestinationDeleted");
  
      /* This routine does similar processing to _close() but it does
       * not call back to the inputHandler to remove the producerSession.  Doing
       * so would stop users of this routine in the inputHandler from using an
       * iterator to close all the producersessions.
       */
      
      // Check if this is actually closing the producer (i.e. it's not already closed)
      boolean closedNow = false;
  
      synchronized (this)
      {
        if (!_closed)
        {
          _closed = true;
          _inputHandler = null;
          closedNow = true;
        }
      }
      
      // If we've just cosed the session, remove it from the connection's list, although
      // not under 'this' lock as that would deadlock with the connection '_producers' lock.
      if (closedNow)
        _conn.removeProducerSession(this);
  
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.exit(tc, "_closeProducerDestinationDeleted");
  
      return;
    }