diff --git a/src/joystick/hidapi/SDL_hidapi_rumble.c b/src/joystick/hidapi/SDL_hidapi_rumble.c index 3a3c2e243..769d11341 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;