Details
-
Bug
-
Resolution: Done
-
P2: Important
-
5.10.0
-
Linux with pulse audio.
Description
In qsoundeffect_pulse_p.cpp, the setMuted and setVolume is emiting while it is locked:
bool QSoundEffectPrivate::isMuted() const { QReadLocker locker(&m_volumeLock); return m_muted; } void QSoundEffectPrivate::setMuted(bool muted) { QWriteLocker locker(&m_volumeLock); m_muted = muted; emit mutedChanged(); }
So that the emit with AutoConnection or DirectConnection attached to this signal is blocking when also using isMuted or other call.
One solution can be:
bool QSoundEffectPrivate::isMuted() const { QReadLocker locker(&m_volumeLock); return m_muted; } void QSoundEffectPrivate::setMuted(bool muted) { { QWriteLocker locker(&m_volumeLock); m_muted = muted; } emit mutedChanged(); }
Or to use regular recursive mutex.