code: public IoFuture await() throws InterruptedException {
          synchronized (lock) {
              while (!ready) {
                  waiters++;
                  try {
                      // Wait for a notify, or if no notify is called,
                      // assume that we have a deadlock and exit the 
                      // loop to check for a potential deadlock.
                      lock.wait(DEAD_LOCK_CHECK_INTERVAL);
                  } finally {
                      waiters--;
                      if (!ready) {
                          checkDeadLock();
                      }
                  }
              }
          }
          return this;
      }
docs: {@inheritDoc}