code: public void await() {
          final CountDownLatch latch;
          final boolean last;
          synchronized (this) {
              latch = prepareLatch();
              last = (actuallyGetCount(latch) == 1);
              if (last) {
                  if (_log.isDebugEnabled()) {
                      _log.debug("...Restarting count down race");
                  }
                  clearLatch();
              }
              actuallyCountDown(latch); // ready go if last
          }
          if (!last) {
              if (isWaitingLatch()) {
                  if (_log.isDebugEnabled()) {
                      _log.debug("...Awaiting all runners coming here");
                  }
                  actuallyAwait(latch);
              }
          }
      }
docs: ===============