default void write(Supplier<? extends T> o) {
        if (!tryWrite(o)) {
            throw ClosedStreamException.get();
        }
    }
Writes the specified object {@link Supplier} to the {@link StreamMessage}. The object provided by the
{@link Supplier} will be transferred to the {@link Subscriber}.

@throws ClosedStreamException if the stream was already closed.
@see <a href="#reference-counted">Life cycle of reference-counted objects</a>
core/src/main/java/com/linecorp/armeria/common/stream/StreamWriter.java