tests: Flush events after an SDL_WaitEvent() call

SDL_WaitEvent() will pump OS events if no poll sentinel is pending, so flush events before inserting a user event to ensure that the user event will be next in the queue.
This commit is contained in:
Frank Praznik
2025-09-19 11:22:29 -04:00
parent 9b72545634
commit ac82534375

View File

@@ -287,6 +287,9 @@ static int SDLCALL events_mainThreadCallbacks(void *arg)
SDL_WaitThread(thread, NULL);
SDLTest_AssertCheck(data.counter == 3, "Incremented counter on main thread, expected 3, got %d", data.counter);
/* Flush events again, as the previous SDL_WaitEvent() call may have pumped OS events and added them to the queue */
SDL_FlushEvents(SDL_EVENT_FIRST, SDL_EVENT_LAST);
/* Try again, but this time delay the calls until we've started waiting for events */
data.delay = 100;
thread = SDL_CreateThread(IncrementCounterThread, NULL, &data);