@Test
    void testLateSubscriberEventLoop() {
        final DefaultStreamMessage<String> streamMessage = new DefaultStreamMessage<>();
        streamMessage.abort();

        final AtomicBoolean onError = new AtomicBoolean();
        final EventLoop executor = eventLoop.get();
        streamMessage.subscribe(new Subscriber<String>() {
            @Override
            public void onSubscribe(Subscription s) {
                assertThat(executor.inEventLoop()).isTrue();
            }

            @Override
            public void onNext(String s) {}

            @Override
            public void onError(Throwable t) {
                onError.set(true);
            }

            @Override
            public void onComplete() {
            }
        }, executor);
        await().untilTrue(onError);
    }
Makes sure {@link Subscriber#onComplete()} is always invoked after
{@link Subscriber#onSubscribe(Subscription)} even if
{@link StreamMessage#subscribe(Subscriber, EventExecutor, SubscriptionOption...)}
is called from non-{@link EventLoop}.
core/src/test/java/com/linecorp/armeria/common/stream/DefaultStreamMessageTest.java