From 02975994c12582aef918bccb3825592e7ea36d10 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Sun, 17 May 2026 12:04:11 -0700 Subject: [PATCH] Revert "Change controller sensor state on the main UI thread on Android" This reverts commit c362f1341f2e2e6abf34ae05d6068ad89bebd00d. It turns out this change causes a deadlock: The main UI thread calls synchronized handleMotionEvent() which then calls SDL_LockJoysticks() The main app thread calls SDL_LockJoysticks() and then synchronized pollInputDevices() --- .../main/java/org/libsdl/app/SDLControllerManager.java | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/android-project/app/src/main/java/org/libsdl/app/SDLControllerManager.java b/android-project/app/src/main/java/org/libsdl/app/SDLControllerManager.java index 2a0296eb0c..31b07b0ac0 100644 --- a/android-project/app/src/main/java/org/libsdl/app/SDLControllerManager.java +++ b/android-project/app/src/main/java/org/libsdl/app/SDLControllerManager.java @@ -91,13 +91,7 @@ public class SDLControllerManager * This method is called by SDL using JNI. */ static void joystickSetSensorsEnabled(int device_id, boolean enabled) { - // Run this on the UI thread so we don't race with enableSensor() in SDLSurface.java - SDL.getContext().runOnUiThread(new Runnable() { - @Override - public void run() { - mJoystickHandler.setSensorsEnabled(device_id, enabled); - } - }); + mJoystickHandler.setSensorsEnabled(device_id, enabled); } /**