@Override public NbpSubscriber<? super T> apply(NbpSubscriber<? super T> t) { if (other == null) { return new TimeoutTimedSubscriber<>( new NbpSerializedSubscriber<>(t), // because errors can race timeout, unit, scheduler.createWorker()); } return new TimeoutTimedOtherSubscriber<>( t, // the FullArbiter serializes timeout, unit, scheduler.createWorker(), other); }