Prechádzať zdrojové kódy

Only queue one wakeup event per wait

Queuing more than one can lead to a spurious wakeup on the next wait.
Cameron Gutman 3 rokov pred
rodič
commit
105de64c2d
1 zmenil súbory, kde vykonal 3 pridanie a 0 odobranie
  1. 3 0
      src/events/SDL_events.c

+ 3 - 0
src/events/SDL_events.c

@@ -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);