From a85ca8505b997e46d1edc09308f779f4f4cd43b5 Mon Sep 17 00:00:00 2001 From: cathery Date: Mon, 20 Apr 2020 15:05:01 +0300 Subject: [PATCH] Change USB thread creation/cleanup order --- source/Sysmodule/source/usb_module.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/source/Sysmodule/source/usb_module.cpp b/source/Sysmodule/source/usb_module.cpp index ab0366c..931212f 100644 --- a/source/Sysmodule/source/usb_module.cpp +++ b/source/Sysmodule/source/usb_module.cpp @@ -197,21 +197,19 @@ namespace syscon::usb R_TRY(CreateUsbEvents()); is_usb_event_thread_running = true; + is_usb_interface_change_thread_running = true; + R_TRY(g_usb_event_thread.Start().GetValue()); R_TRY(g_sony_event_thread.Start().GetValue()); - is_usb_interface_change_thread_running = true; R_TRY(g_usb_interface_change_thread.Start().GetValue()); return 0; } void Disable() { - DestroyUsbEvents(); - is_usb_event_thread_running = false; is_usb_interface_change_thread_running = false; - //TODO: test this without the cancel g_usb_event_thread.CancelSynchronization(); g_sony_event_thread.CancelSynchronization(); g_usb_interface_change_thread.CancelSynchronization(); @@ -220,6 +218,7 @@ namespace syscon::usb g_sony_event_thread.Join(); g_usb_interface_change_thread.Join(); + DestroyUsbEvents(); controllers::Reset(); }