code: @CheckReturnValue
      @SchedulerSupport(SchedulerSupport.NONE)
      public static <T> Maybe<T> fromAction(final Action run) {
          ObjectHelper.requireNonNull(run, "run is null");
          return RxJavaPlugins.onAssembly(new MaybeFromAction<T>(run));
      }
docs: Returns a Maybe instance that runs the given Action for each subscriber and
  emits either its exception or simply completes.
  <dl>
  <dt><b>Scheduler:</b></dt>
  <dd>{@code fromAction} does not operate by default on a particular {@link Scheduler}.</dd>
  <dt><b>Error handling:</b></dt>
  <dd> If the {@link Action} throws an exception, the respective {@link Throwable} is
  delivered to the downstream via {@link MaybeObserver#onError(Throwable)},
  except when the downstream has disposed this {@code Maybe} source.
  In this latter case, the {@code Throwable} is delivered to the global error handler via
  {@link RxJavaPlugins#onError(Throwable)} as an {@link io.reactivex.exceptions.UndeliverableException UndeliverableException}.
  </dd>
  </dl>
  @param <T> the target type
  @param run the runnable to run for each subscriber
  @return the new Maybe instance
  @throws NullPointerException if run is null