private void doPushSignal(Object obj) {
            if (state == State.ABORTED) {
                StreamMessageUtil.closeOrAbort(obj, abortCause);
                return;
            }
            if (!(obj instanceof CloseEvent)) {
                final int dataLength = signalLengthGetter.length(obj);
                if (dataLength > 0) {
                    final int allowedMaxSignalLength = maxSignalLength - signalLength;
                    if (dataLength > allowedMaxSignalLength) {
                        final long transferred = LongMath.saturatedAdd(signalLength, dataLength);
                        final ContentTooLargeException cause =
                                ContentTooLargeException.builder()
                                                        .maxContentLength(maxSignalLength)
                                                        .transferred(transferred)
                                                        .build();
                        StreamMessageUtil.closeOrAbort(obj, cause);
                        upstream.abort(cause);
                        return;
                    }
                    signalLength += dataLength;
                }
            }

            try {
                final int removedLength = signals.addAndRemoveIfRequested(obj);
                signalLength -= removedLength;
            } catch (IllegalStateException e) {
                StreamMessageUtil.closeOrAbort(obj, e);
                upstream.abort(e);
                return;
            }

            upstreamOffset++;

            if (!downstreamSubscriptions.isEmpty()) {
                downstreamSubscriptions.forEach(DownstreamSubscription::signal);
            }
        }
Returns the default {@link EventExecutor} which will be used when a user subscribes to a child
stream using {@link StreamMessage#subscribe(Subscriber, SubscriptionOption...)}.
core/src/main/java/com/linecorp/armeria/common/stream/DefaultStreamMessageDuplicator.java