public boolean destroy() {
        if (!destroyed.getAndSet(true)) {
            try {
                careTaker.join();
            } catch (InterruptedException e) { }
            protocolRepository.clearPolicyCache();
            net.detach(this);
            msn.destroy();
            if (resender != null) {
                resender.destroy();
            }
            return true;
        }
        return false;
    }
<p>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.</p>

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