diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2024-02-07 11:06:23 +0100 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2024-02-07 11:06:23 +0100 |
commit | e89807514ea6fff2128615e6799b178de76ee7be (patch) | |
tree | 0225e8cd5727dc770f8a3854994abb36bd6dee3f /platform/web | |
parent | c9c2b1263754e3bfb9025942645352f242670601 (diff) | |
parent | ea974e18777d60800ac6fe7e4aad6a65b786e693 (diff) | |
download | redot-engine-e89807514ea6fff2128615e6799b178de76ee7be.tar.gz |
Merge pull request #88043 from jsjtxietian/web-data-race
Fix data race regarding `server_quit` in `EditorExportPlatformWeb`
Diffstat (limited to 'platform/web')
-rw-r--r-- | platform/web/export/export_plugin.cpp | 4 | ||||
-rw-r--r-- | platform/web/export/export_plugin.h | 2 |
2 files changed, 3 insertions, 3 deletions
diff --git a/platform/web/export/export_plugin.cpp b/platform/web/export/export_plugin.cpp index d7e72612b4..e2967ee8b8 100644 --- a/platform/web/export/export_plugin.cpp +++ b/platform/web/export/export_plugin.cpp @@ -676,7 +676,7 @@ Ref<Texture2D> EditorExportPlatformWeb::get_run_icon() const { void EditorExportPlatformWeb::_server_thread_poll(void *data) { EditorExportPlatformWeb *ej = static_cast<EditorExportPlatformWeb *>(data); - while (!ej->server_quit) { + while (!ej->server_quit.get()) { OS::get_singleton()->delay_usec(6900); { MutexLock lock(ej->server_lock); @@ -714,7 +714,7 @@ EditorExportPlatformWeb::~EditorExportPlatformWeb() { if (server.is_valid()) { server->stop(); } - server_quit = true; + server_quit.set(true); if (server_thread.is_started()) { server_thread.wait_to_finish(); } diff --git a/platform/web/export/export_plugin.h b/platform/web/export/export_plugin.h index 98e3fe729e..c73d6d6794 100644 --- a/platform/web/export/export_plugin.h +++ b/platform/web/export/export_plugin.h @@ -52,7 +52,7 @@ class EditorExportPlatformWeb : public EditorExportPlatform { int menu_options = 0; Ref<EditorHTTPServer> server; - bool server_quit = false; + SafeNumeric<bool> server_quit; Mutex server_lock; Thread server_thread; |