summaryrefslogtreecommitdiff
path: root/platform/android
diff options
context:
space:
mode:
authorRĂ©mi Verschelde <rverschelde@gmail.com>2018-07-17 14:48:49 +0200
committerGitHub <noreply@github.com>2018-07-17 14:48:49 +0200
commit26d3e31e053784993d316580390bba3b3d9b52ff (patch)
treefaa6dd93469d7adeb9c793cf03267c8cc7f8519e /platform/android
parentf71ffa97248e29f1dd8ee5507d4430b08b456842 (diff)
parentfe4265ad463e8fdf9bd1f8677d5e697b6ee090e0 (diff)
Merge pull request #20132 from ibrahn/fix-android-device-poll-thread
fixed branch on uninit and data race in editor android device polling
Diffstat (limited to 'platform/android')
-rw-r--r--platform/android/export/export.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/platform/android/export/export.cpp b/platform/android/export/export.cpp
index c3ff157f99..c562a47b00 100644
--- a/platform/android/export/export.cpp
+++ b/platform/android/export/export.cpp
@@ -228,7 +228,7 @@ class EditorExportAndroid : public EditorExportPlatform {
};
Vector<Device> devices;
- bool devices_changed;
+ volatile bool devices_changed;
Mutex *device_lock;
Thread *device_thread;
volatile bool quit_request;
@@ -1154,7 +1154,10 @@ public:
virtual bool poll_devices() {
bool dc = devices_changed;
- devices_changed = false;
+ if (dc) {
+ // don't clear unless we're reporting true, to avoid race
+ devices_changed = false;
+ }
return dc;
}
@@ -1857,9 +1860,9 @@ public:
run_icon->create_from_image(img);
device_lock = Mutex::create();
- device_thread = Thread::create(_device_poll_thread, this);
devices_changed = true;
quit_request = false;
+ device_thread = Thread::create(_device_poll_thread, this);
}
~EditorExportAndroid() {