Delete input event when evbuffer_read() fails to avoid just spinning

around a dead file descriptor. Seems to fix a problem reported by Greg
Hurrell in GitHub issue 941.
pull/962/head
nicm 2017-06-06 14:53:28 +00:00
parent 2f04108f3a
commit d7280917da
1 changed files with 3 additions and 1 deletions

4
tty.c
View File

@ -159,8 +159,10 @@ tty_read_callback(__unused int fd, __unused short events, void *data)
int nread;
nread = evbuffer_read(tty->in, tty->fd, -1);
if (nread == -1)
if (nread == -1) {
event_del(&tty->event_in);
return;
}
log_debug("%s: read %d bytes (already %zu)", c->name, nread, size);
while (tty_keys_next(tty))