Fix conditional variables usage on broadcast by using a shared mutex

This commit is contained in:
Wojtek Figat
2022-01-12 17:36:06 +01:00
parent 6d676fd578
commit dfa5e91322
3 changed files with 16 additions and 16 deletions

View File

@@ -23,6 +23,7 @@ namespace ContentLoadingManagerImpl
Array<LoadingThread*> Threads;
ConcurrentTaskQueue<ContentLoadTask> Tasks;
ConditionVariable TasksSignal;
CriticalSection TasksMutex;
};
using namespace ContentLoadingManagerImpl;
@@ -121,7 +122,6 @@ int32 LoadingThread::Run()
#endif
ContentLoadTask* task;
CriticalSection mutex;
ThisThread = this;
while (HasExitFlagClear())
@@ -132,9 +132,9 @@ int32 LoadingThread::Run()
}
else
{
mutex.Lock();
TasksSignal.Wait(mutex);
mutex.Unlock();
TasksMutex.Lock();
TasksSignal.Wait(TasksMutex);
TasksMutex.Unlock();
}
}