@Obsolete
  @RequiresBlockingContext
  public <T, E extends Exception> T run(@NotNull Task.WithResult<T, E> task) throws E {
    run((Task)task);
    return task.getResult();
  }
@Obsolete
  @RequiresBlockingContext
  public <T, E extends Exception> T run(@NotNull Task.WithResult<T, E> task)