From 1c3b9a385905fef9b982be5a37aba107d34464ab Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Thu, 27 Oct 2016 18:09:33 -0700 Subject: [PATCH] Fix race condition in USB driver initialization and cleanup --- .../binding/input/driver/AbstractXboxController.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/limelight/binding/input/driver/AbstractXboxController.java b/app/src/main/java/com/limelight/binding/input/driver/AbstractXboxController.java index c6c880d3..11892b03 100644 --- a/app/src/main/java/com/limelight/binding/input/driver/AbstractXboxController.java +++ b/app/src/main/java/com/limelight/binding/input/driver/AbstractXboxController.java @@ -114,13 +114,13 @@ public abstract class AbstractXboxController extends AbstractController { return false; } + // Report that we're added _before_ starting the input thread + notifyDeviceAdded(); + // Start listening for controller input inputThread = createInputThread(); inputThread.start(); - // Now report we're added - notifyDeviceAdded(); - return true; } @@ -137,11 +137,11 @@ public abstract class AbstractXboxController extends AbstractController { inputThread = null; } - // Report the device removed - notifyDeviceRemoved(); - // Close the USB connection connection.close(); + + // Report the device removed + notifyDeviceRemoved(); } protected abstract boolean handleRead(ByteBuffer buffer);