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

        if (!subscribedUpdater.compareAndSet(this, 0, 1)) {
            subscriber.onSubscribe(NoopSubscription.get());
            subscriber.onError(new IllegalStateException("Only one Subscriber allowed"));
            return;
        }

        publisher.subscribe(new BodyPartSubscriber(subscriber, executor, options), executor, options);
    }
Reactive processor that encodes a stream of {@link BodyPart}s into an HTTP payload.
core/src/main/java/com/linecorp/armeria/common/multipart/MultipartEncoder.java