@Override
  public boolean awaitTermination(long timeout, TimeUnit unit) throws InterruptedException {
    boolean ret = true;
    for (int i = 0; i < executors.length; i++) {
      ret = ret && executors[i].awaitTermination(timeout, unit);
    }
    return ret;
  }
Awaits termination of each of the underlying threads

Note: This can potentially block longer than the given timeout, since the timeout applies for each of the
underlying threads.

@param timeout time to wait for each thread to terminate
@param unit unit of time for specifying timeout
@return Returns True, if all threads terminate successfully within their timeout. False, otherwise.
@throws InterruptedException thrown when the current executing thread is interrupted
samza-core/src/main/java/org/apache/samza/executors/KeyBasedExecutorService.java