code: public void run(List<StealerBasedRebalanceTask> sbTaskList) {
          initializeLatch(sbTaskList.size());
          populateTasksByStealer(sbTaskList);
          // Start scheduling tasks to execute!
          scheduleMoreTasks();
          try {
              doneSignal.await();
          } catch(InterruptedException e) {
              logger.error("RebalanceController scheduler interrupted while waiting for rebalance "
                           + "tasks to be scheduled.", e);
              throw new VoldemortRebalancingException("RebalanceController scheduler interrupted "
                                                      + "while waiting for rebalance tasks to be "
                                                      + "scheduled.");
          }
      }
docs: Set up scheduling structures and then start scheduling tasks to execute.
  Blocks until all tasks have been scheduled. (For all tasks to be
  scheduled, most tasks must have completed.)
  
  @param sbTaskList List of all stealer-based rebalancing tasks to be
  scheduled.