@Override
    public boolean tryWrite(T obj) {
        requireNonNull(obj, "obj");

        if (!isOpen()) {
            StreamMessageUtil.closeOrAbort(obj);
            return false;
        }

        addObject(obj);
        return true;
    }
Anything in the queue must be cleaned up.
Enters this state when there's no chance of consumption by subscriber.
i.e. when any of the following methods are invoked:
<ul>
  <li>{@link Subscription#cancel()}</li>
  <li>{@link #abort()} (via {@link AbortingSubscriber})</li>
  <li>{@link Subscriber#onComplete()}</li>
  <li>{@link Subscriber#onError(Throwable)}</li>
</ul>
core/src/main/java/com/linecorp/armeria/common/stream/AbstractStreamWriter.java