Topic was automatically imported from the old Question2Answer platform.
Asked By
Charlie
I can create a new Thread object and get a unique id string for it, but how can I get the currently running thread or its unique id string? Or equally useful for my purposes, how can I test if the currently running thread == a particular Thread that I’ve created?
I’m asking because I believe I can implement a particular function in a thread-safe way without locks, but only if I can evaluate what thread is calling the function.
There is an OS.set_thread_name(), but no get_thread_name(). I guess this is the string that I would get if I used Thread.get_id(), but haven’t tested this. In any case, I don’t want to change any thread names, just look at them from running code.
Maybe you can save the thread id in the function itself.
func _button2_pressed(thread):
var thid=thread.get_id()
print("idx:",thid)
func _on_Button_pressed():
var thread=Thread.new()
var id=thread.start (self, "_button2_pressed", thread)
var thread1=Thread.new()
var id1=thread1.start (self, "_button2_pressed", thread1)
Thanks! This will work if there really isn’t a more direct way.
FYI:
I’m answering so random people who stumble on this post (you) get an answer because this post is 4 years old and i doubt the guy didn’t find his answer
I had a workaround but this answer is still useful for me. Thank you! (I guess this method appeared sometime since Godot 2.x.)