From 9653bcaa4300a36afe1af0df83fd88ce5b4f0f74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pedro=20J=2E=20Est=C3=A9banez?= Date: Wed, 17 Apr 2024 18:32:14 +0200 Subject: [PATCH] WorkerThreadPool: Polish yielding (fix corner case, remove misleading warning) --- core/object/worker_thread_pool.cpp | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/core/object/worker_thread_pool.cpp b/core/object/worker_thread_pool.cpp index c10f491a115..e0b8730a672 100644 --- a/core/object/worker_thread_pool.cpp +++ b/core/object/worker_thread_pool.cpp @@ -491,12 +491,10 @@ void WorkerThreadPool::notify_yield_over(TaskID p_task_id) { ERR_FAIL_MSG("Invalid Task ID."); } Task *task = *taskp; - -#ifdef DEBUG_ENABLED - if (task->pool_thread_index == get_thread_index()) { - WARN_PRINT("A worker thread is attempting to notify itself. That makes no sense."); + if (task->completed) { + task_mutex.unlock(); + return; } -#endif ThreadData &td = threads[task->pool_thread_index]; td.yield_is_over = true;