浏览代码

Add WorkerThreadPool::get_thread_index()

Pedro J. Estébanez 2 年之前
父节点
当前提交
cba15cd625
共有 2 个文件被更改,包括 7 次插入0 次删除
  1. 5 0
      core/object/worker_thread_pool.cpp
  2. 2 0
      core/object/worker_thread_pool.h

+ 5 - 0
core/object/worker_thread_pool.cpp

@@ -535,6 +535,11 @@ void WorkerThreadPool::wait_for_group_task_completion(GroupID p_group) {
 	task_mutex.unlock();
 	task_mutex.unlock();
 }
 }
 
 
+int WorkerThreadPool::get_thread_index() {
+	Thread::ID tid = Thread::get_caller_id();
+	return singleton->thread_ids.has(tid) ? singleton->thread_ids[tid] : -1;
+}
+
 void WorkerThreadPool::init(int p_thread_count, bool p_use_native_threads_low_priority, float p_low_priority_task_ratio) {
 void WorkerThreadPool::init(int p_thread_count, bool p_use_native_threads_low_priority, float p_low_priority_task_ratio) {
 	ERR_FAIL_COND(threads.size() > 0);
 	ERR_FAIL_COND(threads.size() > 0);
 	if (p_thread_count < 0) {
 	if (p_thread_count < 0) {

+ 2 - 0
core/object/worker_thread_pool.h

@@ -197,6 +197,8 @@ public:
 	_FORCE_INLINE_ int get_thread_count() const { return threads.size(); }
 	_FORCE_INLINE_ int get_thread_count() const { return threads.size(); }
 
 
 	static WorkerThreadPool *get_singleton() { return singleton; }
 	static WorkerThreadPool *get_singleton() { return singleton; }
+	static int get_thread_index();
+
 	void init(int p_thread_count = -1, bool p_use_native_threads_low_priority = true, float p_low_priority_task_ratio = 0.3);
 	void init(int p_thread_count = -1, bool p_use_native_threads_low_priority = true, float p_low_priority_task_ratio = 0.3);
 	void finish();
 	void finish();
 	WorkerThreadPool();
 	WorkerThreadPool();