@Override
  public void await(long timeout, TimeUnit timeUnit) throws InterruptedException {
    // only wait for parent if we actually have sent a request
    if (this.clientCounter > 0) {
      super.await(timeout, timeUnit);
    }

    // wait for receivers to be initialised
    this.initReceiverLatch.await(timeout, timeUnit);

    this.chunkCountDownLatch.await(timeout, timeUnit);
  }
  @Override
  public void await() throws InterruptedException {
    // only wait for parent if we actually have sent a request
    if (this.clientCounter > 0) {
      super.await();
    }

    // wait for receivers to be initialised
    this.initReceiverLatch.await();

    this.chunkCountDownLatch.await(MAX_FILE_WAITNG_TIME, TimeUnit.MILLISECONDS);
  }