public static void setTrafficLightOnEditor(@NotNull Project project,
                                             @NotNull EditorMarkupModel editorMarkupModel,
                                             @NotNull ModalityState modalityState,
                                             @NotNull Supplier<? extends @Nullable TrafficLightRenderer> createTrafficRenderer) {
    ProjectUtilKt.executeOnPooledThread(project, () -> {
      TrafficLightRenderer tlRenderer = createTrafficRenderer.get();
      if (tlRenderer == null) return;

      ApplicationManager.getApplication().invokeLater(() -> {
        Editor editor = editorMarkupModel.getEditor();
        if (project.isDisposed() || editor.isDisposed()) {
          Disposer.dispose(tlRenderer); // would be registered in setErrorStripeRenderer() below
          return;
        }
        editorMarkupModel.setErrorStripeRenderer(tlRenderer);
      }, modalityState);
    });
  }
public static void setTrafficLightOnEditor(@NotNull Project project,
                                             @NotNull EditorMarkupModel editorMarkupModel,
                                             @NotNull ModalityState modalityState,
                                             @NotNull Supplier<? extends @Nullable TrafficLightRenderer> createTrafficRenderer)