ListenerList::callAsync?

Has this ever been considered?
Perhaps ListenerList could be made WeakReferencable and then you could do something liek this:

template <typename Callback>
void callAsync(Callback&& callback)
{
    auto asyncCallback = [weakRef = WeakReference<ListenerList>(this), 
                          cb = std::move(callback)]() 
    {
        if( weakRef.get() )
            weakRef->call(cb);
    };

    MessageManager::callAsync( asyncCallback );
}

I’ve been sprinkling this in my project in a few classes where I needed async ListenerList callbacks happening.

    template<typename Callable>
    void callAsync(Callable&& callback)
    {
        auto asycnCall = [cb = std::move(callback), weakRef = WeakReference<TheClass>(this)]()
        {
            if( weakRef.get() )
            {
                const ScopedLock sl(weakRef->listenerLock);
                weakRef->listenerList.call(cb);
            }
        };
        
        MessageManager::callAsync(asycnCall);
    }

It works well enough for me to not stress over it.