private void wakeUp() {
    // this will definitely wake us up; it doesn't matter that countDown()
    // might get called too often
    long pendingEvalBlocks = latch.getCount();
    for (int i = 0; i < pendingEvalBlocks; i++)
      latch.countDown();
  }
Evaluates the specified block, which is expected to contain
one or more explicit conditions (i.e. assert statements).
Any caught exception will be rethrown from <tt>await()</tt>.

@param block the code block to evaluate
spock-core/src/main/java/spock/util/concurrent/AsyncConditions.java