code: void addWorker(final VortexWorkerManager vortexWorkerManager) {
      lock.lock();
      try {
        if (!terminated) {
          if (!removedBeforeAddedWorkers.contains(vortexWorkerManager.getId())) {
            this.runningWorkers.put(vortexWorkerManager.getId(), vortexWorkerManager);
            this.schedulingPolicy.workerAdded(vortexWorkerManager);
            this.workerAggregateFunctionMap.put(vortexWorkerManager.getId(), new HashSet<Integer>());
  
            // Notify (possibly) waiting scheduler
            noWorkerOrResource.signal();
          }
        } else {
          // Terminate the worker
          vortexWorkerManager.terminate();
        }
      } finally {
        lock.unlock();
      }
    }
docs: Concurrency: Called by multiple threads.
  Parameter: Called exactly once per vortexWorkerManager.