Browse Source

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

Sam Lantinga 4 years ago
parent
commit
480c1f9fef
1 changed files with 4 additions and 0 deletions
  1. 4 0
      src/joystick/hidapi/SDL_hidapi_rumble.c

+ 4 - 0
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;