summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkobewi <kobewi4e@gmail.com>2022-07-01 12:48:58 +0200
committerkobewi <kobewi4e@gmail.com>2022-07-01 13:11:31 +0200
commit7d5c9432020610325483d8e529817e5d0f5cafd3 (patch)
treef8289508f67543a7abf0b21b099d1bff3846f7de
parentdaec5bed575776517528bca4ac0c6c21d6d3fefb (diff)
Handle custom Callables in Thread.start()
-rw-r--r--core/core_bind.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/core/core_bind.cpp b/core/core_bind.cpp
index b5f4a1c0f6..24b27d2692 100644
--- a/core/core_bind.cpp
+++ b/core/core_bind.cpp
@@ -1840,13 +1840,14 @@ void Thread::_start_func(void *ud) {
ERR_FAIL_MSG(vformat("Could not call function '%s' on previously freed instance to start thread %s.", t->target_callable.get_method(), t->get_id()));
}
- ::Thread::set_name(t->target_callable.get_method());
+ String func_name = t->target_callable.is_custom() ? t->target_callable.get_custom()->get_as_text() : String(t->target_callable.get_method());
+ ::Thread::set_name(func_name);
Callable::CallError ce;
t->target_callable.call(nullptr, 0, t->ret, ce);
if (ce.error != Callable::CallError::CALL_OK) {
t->running.clear();
- ERR_FAIL_MSG("Could not call function '" + t->target_callable.get_method().operator String() + "' to start thread " + t->get_id() + ": " + Variant::get_callable_error_text(t->target_callable, nullptr, 0, ce) + ".");
+ ERR_FAIL_MSG("Could not call function '" + func_name + "' to start thread " + t->get_id() + ": " + Variant::get_callable_error_text(t->target_callable, nullptr, 0, ce) + ".");
}
t->running.clear();