public void runIfNecessary()

in cloud-vmware-server/src/main/java/jetbrains/buildServer/clouds/vmware/tasks/VmwarePooledUpdateInstanceTask.java [64:90]


  public void runIfNecessary(@NotNull final VMWareCloudClient client) {
    if (mySpecialState.get() != 0) {
      return;
    }

    if (!myAlreadyRunning.compareAndSet(false, true)) {
      return;
    }
    try {
      synchronized (this) {
        if (myNewClients.size() != 0) {
          myClients.addAll(myNewClients);
          myNewClients.clear();
        }
      }
      if (myClients.size() == 0) {
        return;
      }
      if (client != myClients.get(0)) {
        return;
      }
      run();
      myClients.forEach(VMWareCloudClient::setInitializedIfNecessary);
    } finally {
      myAlreadyRunning.set(false);
    }
  }