docs: public boolean flushAllForDelete()
      throws SIResourceException
    {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.entry(tc, "flushAllForDelete");
  
      synchronized (this)
      {
        // Flush may have completed, if so then return
        // without starting another one.
        if (flushedForDeleteSource)
        {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
            SibTr.exit(tc, "flushAllForDelete", Boolean.TRUE);
          return true;
        }
  
        // Short circuit if flush already in progress
        if (deleteFlushSource != null)
        {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
            SibTr.exit(tc, "flushAllForDelete", Boolean.FALSE);
          return false;
        }
           
        // Otherwise, we need to start a new flush
        final PtoPOutputHandler psOH = this; 
        deleteFlushSource = new FlushComplete() {
          public void flushComplete(DestinationHandler destinationHandler)
            {
              // Remember that the flush completed for when we redrive
              // the delete code.
              synchronized (psOH) {
                psOH.flushedForDeleteSource = true;
                psOH.deleteFlushSource      = null;
              }
              
              // Now redrive the actual deletion
              psOH.messageProcessor.getDestinationManager().startAsynchDeletion();
  
            }
          };       
      }
      
      // Start the flush and return false
      try 
      {
        if (TraceComponent.isAnyTracingEnabled() && tc.isEventEnabled())
          SibTr.event(tc, "Started PtoP source flush for destination: " + destinationHandler.getName());
        startFlush(deleteFlushSource);
      } 
      catch (FlushAlreadyInProgressException e) 
      {
        // This shouldn't actually be possible so log it
        FFDCFilter.processException(
          e,
          "com.ibm.ws.sib.processor.impl.PtoPOutputHandler.flushAllForDelete",
          "1:2756:1.241",
          this);
          
        SibTr.exception(tc, e);
    
        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
          SibTr.exit(tc, "flushAllForDelete", "FlushAlreadyInProgressException");
  
        throw new SIResourceException(e);
      }
      
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.exit(tc, "flushAllForDelete", Boolean.FALSE);
      return false;
    }