@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);
 }