@Override
    public void subscribe(Subscriber<? super T> subscriber, EventExecutor executor,
                          SubscriptionOption... options) {
        requireNonNull(subscriber, "subscriber");
        requireNonNull(executor, "executor");
        requireNonNull(options, "options");

        if (subscribedUpdater.compareAndSet(this, 0, 1)) {
            parent = new ConcatArraySubscriber<>(subscriber, sources, executor, options);
            subscriber.onSubscribe(parent);
            if (executor.inEventLoop()) {
                parent.nextSource();
            } else {
                executor.execute(() -> {
                    assert parent != null;
                    parent.nextSource();
                });
            }
        } else {
            subscriber.onSubscribe(NoopSubscription.get());
            subscriber.onError(new IllegalStateException("subscribed by other subscriber already"));
        }
    }
Relay items in order from subsequent {@link StreamMessage}s as a single {@link StreamMessage} source.
core/src/main/java/com/linecorp/armeria/common/stream/ConcatArrayStreamMessage.java