private void notifySubscriberOfCloseEvent0(SubscriptionImpl subscription, CloseEvent event) {
        try {
            maybeInvokeOnSubscribe(subscription, subscription.subscriber());
            event.notifySubscriber(subscription, whenComplete());
        } finally {
            subscription.clearSubscriber();
            final Throwable cause = event.cause;
            if (state == State.CLEANUP) {
                cleanupCause = cause;
            }
            cleanupObjects(cause);
        }
    }
Invoked whenever a new demand is requested.
@param n Newly requested demand
core/src/main/java/com/linecorp/armeria/common/stream/DefaultStreamMessage.java