summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/os/thread.cpp6
-rw-r--r--core/os/thread.h1
2 files changed, 6 insertions, 1 deletions
diff --git a/core/os/thread.cpp b/core/os/thread.cpp
index f1fcfdf7e1..73e31bdb3d 100644
--- a/core/os/thread.cpp
+++ b/core/os/thread.cpp
@@ -47,7 +47,7 @@ uint64_t Thread::_thread_id_hash(const std::thread::id &p_t) {
}
Thread::ID Thread::main_thread_id = _thread_id_hash(std::this_thread::get_id());
-thread_local Thread::ID Thread::caller_id = _thread_id_hash(std::this_thread::get_id());
+thread_local Thread::ID Thread::caller_id = 0;
void Thread::_set_platform_funcs(
Error (*p_set_name_func)(const String &),
@@ -112,6 +112,10 @@ Error Thread::set_name(const String &p_name) {
return ERR_UNAVAILABLE;
}
+Thread::Thread() {
+ caller_id = _thread_id_hash(std::this_thread::get_id());
+}
+
Thread::~Thread() {
if (id != _thread_id_hash(std::thread::id())) {
#ifdef DEBUG_ENABLED
diff --git a/core/os/thread.h b/core/os/thread.h
index 599585051f..17ac82c650 100644
--- a/core/os/thread.h
+++ b/core/os/thread.h
@@ -98,6 +98,7 @@ public:
///< waits until thread is finished, and deallocates it.
void wait_to_finish();
+ Thread();
~Thread();
#else
_FORCE_INLINE_ ID get_id() const { return 0; }