docs: @Override
  	public Protos.TaskID newTaskID() throws Exception {
  		synchronized (startStopLock) {
  			verifyIsRunning();
  
  			int nextCount;
  			boolean success;
  			do {
  				ZooKeeperVersionedValue<Integer> count = totalTaskCountInZooKeeper.getVersionedValue();
  				nextCount = count.getValue() + 1;
  				success = totalTaskCountInZooKeeper.trySetCount(count, nextCount);
  			}
  			while (!success);
  
  			Protos.TaskID taskID = Protos.TaskID.newBuilder().setValue(TASKID_FORMAT.format(nextCount)).build();
  			return taskID;
  		}
  	}