Explorar o código

Add WorkerThreadPool::get_thread_index()

Pedro J. Estébanez %!s(int64=2) %!d(string=hai) anos
pai
achega
cba15cd625
Modificáronse 2 ficheiros con 7 adicións e 0 borrados
  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();
 }
 
+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) {
 	ERR_FAIL_COND(threads.size() > 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(); }
 
 	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 finish();
 	WorkerThreadPool();