public boolean destroy() {
        if (destroyed.getAndSet(true)) {
            return false;
        }
        synchronized (lock) {
            closed = true;
        }
        sequencer.destroy();
        mbus.sync();
        return true;
    }
Sets the destroyed flag to true. The very first time this method is
called, it cleans up all its dependencies.  Even if you retain a
reference to this object, all of its content is allowed to be garbage
collected.

@return true if content existed and was destroyed.
messagebus/src/main/java/com/yahoo/messagebus/SourceSession.java