报告无法为之找到相应 Condition.signal()Condition.signalAll() 调用的 Condition.await() 的调用。

在没有相应 Condition.signal() 的线程中调用 Condition.await(),可能导致该线程被禁用,直到它被中断或发生“虚假唤醒”为止。

该检查仅报告针对当前类的目标字段的调用。

示例:


  class Queue {
    private final Condition isEmpty = ...;

    void add(Object elem) {
      // ...
      // isEmpty.signal();
      // ...
    }

    void remove(Object elem) throws InterruptedException {
      // ...
      isEmpty.await(); // 'await()' 不包含相应的 'signal()'/'signalAll()' 调用
      // ...
    }
  }