@CalledInAny
  public static @NotNull <L> L syncPublisher(@NotNull Project project, @NotNull Topic<L> topic) throws ProcessCanceledException {
    return ReadAction.compute(() -> {
      if (project.isDisposed()) {
        throw new ProcessCanceledException();
      }
      return project.getMessageBus().syncPublisher(topic);
    });
  }
@CalledInAny
  public static @NotNull <L> L syncPublisher(@NotNull Project project, @NotNull Topic<L> topic)