diff --git a/glfw/backend_utils.c b/glfw/backend_utils.c index 0d98d8e55..7181dc052 100644 --- a/glfw/backend_utils.c +++ b/glfw/backend_utils.c @@ -246,9 +246,9 @@ void wakeupEventLoop(EventLoopData *eld) { #ifdef HAS_EVENT_FD static const int64_t value = 1; - while (write(eld->wakeupFd, &value, sizeof value) < 0 && errno == EINTR); + while (write(eld->wakeupFd, &value, sizeof value) < 0 && (errno == EINTR || errno == EAGAIN)); #else - while (write(eld->wakeupFds[1], "w", 1) < 0 && errno == EINTR); + while (write(eld->wakeupFds[1], "w", 1) < 0 && (errno == EINTR || errno == EAGAIN)); #endif }