Browse Source

Merge pull request #44732 from Calinou/os-add-get-thread-caller-id

Add an `OS.get_thread_caller_id()` method
Rémi Verschelde 4 years ago
parent
commit
d6765c8d8b
3 changed files with 14 additions and 0 deletions
  1. 5 0
      core/core_bind.cpp
  2. 1 0
      core/core_bind.h
  3. 8 0
      doc/classes/OS.xml

+ 5 - 0
core/core_bind.cpp

@@ -298,6 +298,10 @@ Error _OS::set_thread_name(const String &p_name) {
 	return Thread::set_name(p_name);
 }
 
+Thread::ID _OS::get_thread_caller_id() const {
+	return Thread::get_caller_id();
+};
+
 bool _OS::has_feature(const String &p_feature) const {
 	return OS::get_singleton()->has_feature(p_feature);
 }
@@ -764,6 +768,7 @@ void _OS::_bind_methods() {
 	ClassDB::bind_method(D_METHOD("set_use_file_access_save_and_swap", "enabled"), &_OS::set_use_file_access_save_and_swap);
 
 	ClassDB::bind_method(D_METHOD("set_thread_name", "name"), &_OS::set_thread_name);
+	ClassDB::bind_method(D_METHOD("get_thread_caller_id"), &_OS::get_thread_caller_id);
 
 	ClassDB::bind_method(D_METHOD("has_feature", "tag_name"), &_OS::has_feature);
 

+ 1 - 0
core/core_bind.h

@@ -232,6 +232,7 @@ public:
 	String get_user_data_dir() const;
 
 	Error set_thread_name(const String &p_name);
+	Thread::ID get_thread_caller_id() const;
 
 	bool has_feature(const String &p_feature) const;
 

+ 8 - 0
doc/classes/OS.xml

@@ -136,6 +136,14 @@
 				Returns the keycode of the given string (e.g. "Escape").
 			</description>
 		</method>
+		<method name="get_thread_caller_id" qualifiers="const">
+			<return type="int">
+			</return>
+			<description>
+				Returns the ID of the current thread. This can be used in logs to ease debugging of multi-threaded applications.
+				[b]Note:[/b] Thread IDs are not deterministic and may be reused across application restarts.
+			</description>
+		</method>
 		<method name="get_cmdline_args">
 			<return type="PackedStringArray">
 			</return>