Use recursive mutex for requestChangeInModel/doneChangeInModel (#7359)
* Make model change mutex recursive * Initialize s_renderingThread
This commit is contained in:
@@ -66,8 +66,7 @@ namespace lmms
|
||||
|
||||
using LocklessListElement = LocklessList<PlayHandle*>::Element;
|
||||
|
||||
static thread_local bool s_renderingThread;
|
||||
static thread_local bool s_runningChange;
|
||||
static thread_local bool s_renderingThread = false;
|
||||
|
||||
|
||||
|
||||
@@ -758,16 +757,14 @@ void AudioEngine::removePlayHandlesOfTypes(Track * track, PlayHandle::Types type
|
||||
|
||||
void AudioEngine::requestChangeInModel()
|
||||
{
|
||||
if (s_renderingThread || s_runningChange) { return; }
|
||||
if (s_renderingThread) { return; }
|
||||
m_changeMutex.lock();
|
||||
s_runningChange = true;
|
||||
}
|
||||
|
||||
void AudioEngine::doneChangeInModel()
|
||||
{
|
||||
if (s_renderingThread || !s_runningChange) { return; }
|
||||
if (s_renderingThread) { return; }
|
||||
m_changeMutex.unlock();
|
||||
s_runningChange = false;
|
||||
}
|
||||
|
||||
bool AudioEngine::isAudioDevNameValid(QString name)
|
||||
|
||||
Reference in New Issue
Block a user