docs: public synchronized void unlock()
    {
      if (tc.isEntryEnabled())
        SibTr.entry(tc, "unlock", this);
  
      // If the subscription locks are down to zero then notify the threads waiting
      // for the subscriptionTable lock.
      synchronized (iMutex)
      {
        if (readLockCount == 0)
        {
          if (tc.isEntryEnabled()) 
            SibTr.exit(tc, "unlock", "SIErrorException");
          
          SibTr.error(tc, "INTERNAL_MESSAGING_ERROR_CWSIP0001",
            new Object[] {
              "com.ibm.ws.sib.processor.utils.AdvancedLockManager",
              "1:237:1.3" });
            
          throw new SIErrorException(
            nls.getFormattedMessage(
              "INTERNAL_MESSAGING_ERROR_CWSIP0001",
              new Object[] {
                "com.ibm.ws.sib.processor.utils.AdvancedLockManager",
                "1:244:1.3" },
              null));
        }
        
        decrementThreadLockCount();
        // Decrement the lock count and notify the other threads if no 
        // one holds the lock any more.
        if (readLockCount == 0)
          notifyAll();        
      }
  
      if (tc.isEntryEnabled())
        SibTr.exit(tc, "unlock");
    }