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()' 호출을 포함하지 않습니다
// ...
}
}