fix: QMutex cannot be put in an STL container, use shared_ptr instead (so we get automatic deletion at object destruction)