code: public void signal() {
      if (lockVar.isHeldByCurrentThread()) {
        throw new RuntimeException("signal() must not be called on same thread as await()");
      }
      try {
        lockVar.lock();
        LOG.log(Level.INFO, "Signalling sleeper...");
        isSignal = true;
        conditionVar.signal();
      } finally {
        lockVar.unlock();
      }
    }
docs: Wakes the thread sleeping in (@code await()}.