public override void Subscribe(IFlowableSubscriber <T> subscriber) { if (subscriber is IConditionalSubscriber <T> s) { var parent = new SkipUntilConditionalSubscriber(s); subscriber.OnSubscribe(parent); other.Subscribe(parent.other); source.Subscribe(parent); } else { var parent = new SkipUntilSubscriber(subscriber); subscriber.OnSubscribe(parent); other.Subscribe(parent.other); source.Subscribe(parent); } }
public void Subscribe(ISubscriber <T> s) { SkipUntilHelper parent; if (s is IConditionalSubscriber <T> ) { parent = new SkipUntilConditionalSubscriber((IConditionalSubscriber <T>)s); } else { parent = new SkipUntilSubscriber(s); } var until = new UntilSubscriber(parent); s.OnSubscribe(parent); other.Subscribe(until); source.Subscribe(parent); }