android/guava/src/com/google/common/util/concurrent/Monitor.java
@GuardedBy("lock")
  private boolean isSatisfied(Guard guard) {
    try {
      return guard.isSatisfied();
    } catch (Throwable throwable) {
      signalAllWaiters();
      throw throwable;
    }
  }
@GuardedBy("lock")
  private boolean isSatisfied(Guard guard) {
    try {
      return guard.isSatisfied();
    } catch (Throwable throwable) {
      signalAllWaiters();
      throw throwable;
    }
  }
Exactly like guard.isSatisfied(), but in addition signals all waiting threads in the (hopefully
unlikely) event that isSatisfied() throws.