@Override
        public void onNext(BodyPart bodyPart) {
            if (demandOfMultipart != Long.MAX_VALUE) {
                demandOfMultipart--;
            }

            currentExposedBodyPartPublisher = bodyPart.content();
            // We only publish one bodyPart at a time.
            // Next BodyPart must wait the current BodyPart close and fully consumed.
            currentExposedBodyPartPublisher.whenComplete().handle((unused, throwable) -> {
                if (executor.inEventLoop()) {
                    onNext0();
                } else {
                    executor.execute(this::onNext0);
                }
                return null;
            });
            subscriber.onNext(bodyPart);
        }
For hiding Subscriber interface from MultipartDecoder.
Subscribing {@code DecodedHttpStreamMessage<BodyPart>} and delegating to external subscriber.
core/src/main/java/com/linecorp/armeria/common/multipart/MultipartDecoder.java