@Override public void subscribe(Subscriber<? super T> s) { Consumer<Runnable> scheduler; try { scheduler = schedulerFactory.call(); } catch (Throwable e) { Exceptions.throwIfFatal(e); EmptySubscription.error(s, e); return; } if (scheduler == null) { EmptySubscription.error( s, new NullPointerException("The schedulerFactory returned a null Function")); return; } if (value == null) { FluxPublishOn.ScheduledEmptySubscriptionEager parent = new FluxPublishOn.ScheduledEmptySubscriptionEager(s, scheduler); s.onSubscribe(parent); scheduler.accept(parent); } else { s.onSubscribe(new FluxPublishOn.ScheduledSubscriptionEagerCancel<>(s, value, scheduler)); } }