private static void scheduleUpdate(@NotNull Sdk sdk, @NotNull Project project, @NotNull PyUpdateSdkRequestData requestData) {
    if (!ourEnabledInTests && ApplicationManager.getApplication().isUnitTestMode()) {
      LOG.info("Skipping background update for '" + sdk + "' in unit test mode");
      return;
    }
    TrackingUtil.trackActivity(project, PythonActivityKey.INSTANCE, () -> {
      synchronized (ourLock) {
        if (ourUnderRefresh.contains(sdk)) {
          if (Trigger.LOG.isDebugEnabled()) {
            PyUpdateSdkRequestData previousRequest = ourToBeRefreshed.get(sdk);
            if (previousRequest != null) {
              String cause = Trigger.getCauseByTrace(previousRequest.myTraceback);
              Trigger.LOG.debug("Discarding previous update for " + sdk + " triggered by " + cause);
            }
          }
          ourToBeRefreshed.merge(sdk, requestData, PyUpdateSdkRequestData::merge);
          return;
        }
        else {
          ourUnderRefresh.add(sdk);
        }
      }
      ProgressManager.getInstance().run(new PyUpdateSdkTask(project, sdk, requestData));
    });
  }
private static void scheduleUpdate(@NotNull Sdk sdk, @NotNull Project project, @NotNull PyUpdateSdkRequestData requestData)