Fix multiple issues in WorkerThreadPool
- Fix project settings being ignored. - Made usages of `native_thread_allocator` thread-safe. - Remove redundant thread-safety from `low_priority_threads_used`, `exit_threads`. - Fix deadlock due to unintended extra lock of `task_mutex`.
This commit is contained in:
@ -1454,6 +1454,19 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph
|
||||
#endif
|
||||
}
|
||||
|
||||
// Initialize WorkerThreadPool.
|
||||
{
|
||||
int worker_threads = GLOBAL_GET("threading/worker_pool/max_threads");
|
||||
bool low_priority_use_system_threads = GLOBAL_GET("threading/worker_pool/use_system_threads_for_low_priority_tasks");
|
||||
float low_property_ratio = GLOBAL_GET("threading/worker_pool/low_priority_thread_ratio");
|
||||
|
||||
if (editor || project_manager) {
|
||||
WorkerThreadPool::get_singleton()->init();
|
||||
} else {
|
||||
WorkerThreadPool::get_singleton()->init(worker_threads, low_priority_use_system_threads, low_property_ratio);
|
||||
}
|
||||
}
|
||||
|
||||
// Initialize user data dir.
|
||||
OS::get_singleton()->ensure_user_data_dir();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user