fixed branch on uninit and data race in editor android device polling
Initialised relevant variables before stating thread, to prevent a branch on uninitialised data. Fixed race condition in polling that could miss a device change.
This commit is contained in:
parent
1fc7973a00
commit
fe4265ad46
|
@ -228,7 +228,7 @@ class EditorExportAndroid : public EditorExportPlatform {
|
||||||
};
|
};
|
||||||
|
|
||||||
Vector<Device> devices;
|
Vector<Device> devices;
|
||||||
bool devices_changed;
|
volatile bool devices_changed;
|
||||||
Mutex *device_lock;
|
Mutex *device_lock;
|
||||||
Thread *device_thread;
|
Thread *device_thread;
|
||||||
volatile bool quit_request;
|
volatile bool quit_request;
|
||||||
|
@ -1154,7 +1154,10 @@ public:
|
||||||
virtual bool poll_devices() {
|
virtual bool poll_devices() {
|
||||||
|
|
||||||
bool dc = devices_changed;
|
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;
|
return dc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1857,9 +1860,9 @@ public:
|
||||||
run_icon->create_from_image(img);
|
run_icon->create_from_image(img);
|
||||||
|
|
||||||
device_lock = Mutex::create();
|
device_lock = Mutex::create();
|
||||||
device_thread = Thread::create(_device_poll_thread, this);
|
|
||||||
devices_changed = true;
|
devices_changed = true;
|
||||||
quit_request = false;
|
quit_request = false;
|
||||||
|
device_thread = Thread::create(_device_poll_thread, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
~EditorExportAndroid() {
|
~EditorExportAndroid() {
|
||||||
|
|
Loading…
Reference in New Issue