code: public boolean signal()
      {
          if (!hasWaiters())
              return false;
          while (true)
          {
              RegisteredSignal s = queue.poll();
              if (s == null || s.signal() != null)
                  return s != null;
          }
      }
docs: Signal one waiting thread