public void awaitInitialization(){ while(!isInitialized()){ LockSupport.parkNanos(0l); } }
/** * Create a Stream that accepts data via the Subsriber passed into the supplied Consumer. * reactive-streams susbscription is ignored (i.e. this Stream is backpressure free) * * <pre> * {@code * ReactiveSeq<Integer> input = Spouts.async(subscriber->{ * listener.onEvent(subscriber::onNext); * listener.onError(susbscriber::onError); * closeListener.onEvent(subscriber::onClose); * }); * } * </pre> * * @param sub * @param <T> * @return */ static <T> ReactiveSeq<T> async(Consumer<? super PushSubscriber<T>> sub){ AsyncSubscriber<T> s = asyncSubscriber(); return s.registerAndstream(()->{ while(!s.isInitialized()){ LockSupport.parkNanos(1l); } sub.accept(s); }); }
Thread t = new Thread(() -> { while (!sub.isInitialized()) {
public void awaitInitialization(){ while(!isInitialized()){ LockSupport.parkNanos(0l); } }
/** * Create a Stream that accepts data via the Subsriber passed into the supplied Consumer. * reactive-streams susbscription is ignored (i.e. this Stream is backpressure free) * * <pre> * {@code * ReactiveSeq<Integer> input = Spouts.async(subscriber->{ * listener.onEvent(subscriber::onNext); * listener.onError(susbscriber::onError); * closeListener.onEvent(subscriber::onClose); * }); * } * </pre> * * @param sub * @param <T> * @return */ static <T> ReactiveSeq<T> async(Consumer<? super PushSubscriber<T>> sub){ AsyncSubscriber<T> s = asyncSubscriber(); return s.registerAndstream(()->{ while(!s.isInitialized()){ LockSupport.parkNanos(1l); } sub.accept(s); }); }