Did not know about this! Though I have often used [CountdownLatch.await()](http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/CountDownLatch.html#await()). That does not seem to have the spurious waking up problem. Reduces three variables (lock, running, blockingCondition) to one variable.