From a35bcad0be8a42432f114300beb88a1ad509c7b7 Mon Sep 17 00:00:00 2001
From: Sylvain <[EMAIL REDACTED]>
Date: Tue, 10 Feb 2026 13:34:37 +0100
Subject: [PATCH] Android: prevent SDLActivity and Main Thread to access
mJoystick at the same time. same for mHapticHandler
---
.../main/java/org/libsdl/app/SDLControllerManager.java | 8 ++++----
1 file changed, 4 insertions(+), 4 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 f2de88af4bc8c..7655ecfd6fab5 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
@@ -211,7 +211,7 @@ public int compare(InputDevice.MotionRange arg0, InputDevice.MotionRange arg1) {
/**
* Handles adding and removing of input devices.
*/
- void pollInputDevices() {
+ synchronized void pollInputDevices() {
int[] deviceIds = InputDevice.getDeviceIds();
for (int device_id : deviceIds) {
@@ -307,7 +307,7 @@ void pollInputDevices() {
}
}
- protected SDLJoystick getJoystick(int device_id) {
+ synchronized protected SDLJoystick getJoystick(int device_id) {
for (SDLJoystick joystick : mJoysticks) {
if (joystick.device_id == device_id) {
return joystick;
@@ -642,7 +642,7 @@ void stop(int device_id) {
}
}
- void pollHapticDevices() {
+ synchronized void pollHapticDevices() {
final int deviceId_VIBRATOR_SERVICE = 999999;
boolean hasVibratorService = false;
@@ -690,7 +690,7 @@ void pollHapticDevices() {
}
}
- protected SDLHaptic getHaptic(int device_id) {
+ synchronized protected SDLHaptic getHaptic(int device_id) {
for (SDLHaptic haptic : mHaptics) {
if (haptic.device_id == device_id) {
return haptic;