code: public synchronized void waitOn() throws InterruptedException
     {
        if (tc.isEntryEnabled()) SibTr.entry(tc, "waitOn", ""+count);
  
        ++count;
        if (count > 0)
        {
           try
           {
              wait();
           }
           catch(InterruptedException e)
           {
              // No FFDC code needed
              --count;
              throw e;
           }
        }
  
      if (tc.isEntryEnabled()) SibTr.exit(tc, "waitOn");
     }
docs: Wait for the semaphore to be posted
  @see Semaphore#post()
  @throws InterruptedException if the wait is interrupted rather than posted