@Override
        public void onSubscribe(Subscription s) {
            subscription = s;
            delegate.onSubscribe(this);
            if (completed || canceled) {
                return;
            }
            lastEventTimeNanos = System.nanoTime();
            timeoutFuture = scheduleTimeout(timeoutNanos);
        }
Subscribes the given subscriber to this stream with timeout logic applied.

@param subscriber the subscriber to this stream
@param executor the executor for running timeout tasks and stream operations
@param options subscription options
@see StreamMessage#subscribe(Subscriber, EventExecutor, SubscriptionOption...)
core/src/main/java/com/linecorp/armeria/common/stream/TimeoutStreamMessage.java