Commit 480c1f9fef73dece0ead7c95a60dcb67ec4e7ce7

Sam Lantinga 2021-01-01T11:12:36

Make sure we're not starving report reads when there's lots of rumble

diff --git a/src/joystick/hidapi/SDL_hidapi_rumble.c b/src/joystick/hidapi/SDL_hidapi_rumble.c
index 3a3c2e2..769d113 100644
--- a/src/joystick/hidapi/SDL_hidapi_rumble.c
+++ b/src/joystick/hidapi/SDL_hidapi_rumble.c
@@ -25,6 +25,7 @@
 /* Handle rumble on a separate thread so it doesn't block the application */
 
 #include "SDL_thread.h"
+#include "SDL_timer.h"
 #include "SDL_hidapijoystick_c.h"
 #include "SDL_hidapi_rumble.h"
 #include "../../thread/SDL_systhread.h"
@@ -81,6 +82,9 @@ static int SDL_HIDAPI_RumbleThread(void *data)
             SDL_UnlockMutex(request->device->dev_lock);
             (void)SDL_AtomicDecRef(&request->device->rumble_pending);
             SDL_free(request);
+
+            /* Make sure we're not starving report reads when there's lots of rumble */
+            SDL_Delay(10);
         }
     }
     return 0;