mirror of
https://github.com/kovidgoyal/kitty.git
synced 2026-10-21 12:42:25 +00:00
Fully drain the wakeupfd
This commit is contained in:
parent
c0000fb24e
commit
f8418d68a6
2 changed files with 10 additions and 2 deletions
10
glfw/backend_utils.c
vendored
10
glfw/backend_utils.c
vendored
|
|
@ -224,7 +224,15 @@ dispatchTimers(EventLoopData *eld) {
|
|||
static void
|
||||
drain_wakeup_fd(int fd, int events UNUSED, void* data UNUSED) {
|
||||
static char drain_buf[64];
|
||||
while(read(fd, drain_buf, sizeof(drain_buf)) < 0 && errno == EINTR);
|
||||
while(true) {
|
||||
ssize_t ret = read(fd, drain_buf, sizeof(drain_buf));
|
||||
if (ret < 0) {
|
||||
if (errno == EINTR) continue;
|
||||
break;
|
||||
}
|
||||
if (ret > 0) continue;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
bool
|
||||
|
|
|
|||
|
|
@ -1057,9 +1057,9 @@ drain_fd(int fd) {
|
|||
ssize_t len = read(fd, drain_buf, sizeof(drain_buf));
|
||||
if (len < 0) {
|
||||
if (errno == EINTR) continue;
|
||||
if (errno != EIO) perror("Call to read() from drain fd failed");
|
||||
break;
|
||||
}
|
||||
if (len > 0) continue;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue