mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-10-27 12:18:35 +01:00
Init GlobalThreadPool in a thread safe manner
This commit is contained in:
2 files changed
+7
-9
No files matched your search
@@ -1,18 +1,16 @@
|
||||
#include "ThreadPools.h"
|
||||
|
||||
#include "../Core/Config.h"
|
||||
#include "Common/MakeUnique.h"
|
||||
|
||||
std::shared_ptr<ThreadPool> GlobalThreadPool::pool;
|
||||
bool GlobalThreadPool::initialized = false;
|
||||
std::unique_ptr<ThreadPool> GlobalThreadPool::pool;
|
||||
std::once_flag GlobalThreadPool::init_flag;
|
||||
|
||||
void GlobalThreadPool::Loop(const std::function<void(int,int)>& loop, int lower, int upper) {
|
||||
Inititialize();
|
||||
std::call_once(init_flag, Inititialize);
|
||||
pool->ParallelLoop(loop, lower, upper);
|
||||
}
|
||||
|
||||
void GlobalThreadPool::Inititialize() {
|
||||
if(!initialized) {
|
||||
pool = std::make_shared<ThreadPool>(g_Config.iNumWorkerThreads);
|
||||
initialized = true;
|
||||
}
|
||||
pool = make_unique<ThreadPool>(g_Config.iNumWorkerThreads);
|
||||
}
|
||||
Reference in new issue
Block a user