code: void watchPartition(int pid, ExecutorService es, boolean shouldBlock)
          throws InterruptedException, ExecutionException
      {
          String dir = LeaderElector.electionDirForPartition(VoltZK.leaders_initiators, pid);
          m_callbacks.put(pid, new PartitionCallback(pid));
          BabySitter babySitter;
  
          if (shouldBlock) {
              babySitter = BabySitter.blockingFactory(m_zk, dir, m_callbacks.get(pid), es).getFirst();
          } else {
              babySitter = BabySitter.nonblockingFactory(m_zk, dir, m_callbacks.get(pid), es);
          }
  
          m_partitionWatchers.put(pid, babySitter);
      }
docs: Watch the partition ZK dir in the leader appointer.
  
  This should be called on the elected leader appointer only. m_callbacks and
  m_partitionWatchers are only accessed on initialization, promotion,
  or elastic add node.
  
  @param pid The partition ID
  @param es The executor service to use to construct the baby sitter
  @param shouldBlock Whether or not to wait for the initial read of children
  @throws KeeperException
  @throws InterruptedException
  @throws ExecutionException