diff options
author | Juan Linietsky <reduzio@gmail.com> | 2023-04-22 15:34:16 +0200 |
---|---|---|
committer | Juan Linietsky <reduzio@gmail.com> | 2023-04-24 15:13:58 +0200 |
commit | a37c30dfc92d98d79c4a315c58ecb5b2adabf97a (patch) | |
tree | c0a91be57bf01b77c5b0aa090233c63f9135eab1 /platform/android/export/export_plugin.cpp | |
parent | 24cb43a8741c7b10abbbbc77bb6e2bc188662ce0 (diff) | |
download | redot-engine-a37c30dfc92d98d79c4a315c58ecb5b2adabf97a.tar.gz |
Fix thread IDs.
On Linux, thread IDs were not properly assigned with the current approach.
The line:
`std::thread new_thread(&Thread::callback, _thread_id_hash(thread.get_id()), p_settings, p_callback, p_user);`
does not work because the thread ID is not assigned until the thread starts.
This PR changes the behavior to use manually generated thread IDs. Additionally, if a thread is (or may have been created) outside Godot, the method `Thread::attach_external_thread` was added.
Diffstat (limited to 'platform/android/export/export_plugin.cpp')
-rw-r--r-- | platform/android/export/export_plugin.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/platform/android/export/export_plugin.cpp b/platform/android/export/export_plugin.cpp index 0f0132a5d1..f52edf2b61 100644 --- a/platform/android/export/export_plugin.cpp +++ b/platform/android/export/export_plugin.cpp @@ -3306,6 +3306,8 @@ EditorExportPlatformAndroid::EditorExportPlatformAndroid() { EditorExportPlatformAndroid::~EditorExportPlatformAndroid() { #ifndef ANDROID_ENABLED quit_request.set(); - check_for_changes_thread.wait_to_finish(); + if (check_for_changes_thread.is_started()) { + check_for_changes_thread.wait_to_finish(); + } #endif } |