Only queue one wakeup event per wait

Queuing more than one can lead to a spurious wakeup on the next wait.
This commit is contained in:
Cameron Gutman 2021-06-12 16:19:03 -05:00 committed by Sam Lantinga
parent c262569cd8
commit 105de64c2d

View File

@ -596,6 +596,9 @@ SDL_SendWakeupEvent()
if (!_this->wakeup_lock || SDL_LockMutex(_this->wakeup_lock) == 0) {
if (_this->wakeup_window) {
_this->SendWakeupEvent(_this, _this->wakeup_window);
/* No more wakeup events needed until we enter a new wait */
_this->wakeup_window = NULL;
}
if (_this->wakeup_lock) {
SDL_UnlockMutex(_this->wakeup_lock);