From d7280917da5bfdf1811772c5f44fe1dd341c1742 Mon Sep 17 00:00:00 2001 From: nicm Date: Tue, 6 Jun 2017 14:53:28 +0000 Subject: 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. --- tty.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'tty.c') diff --git a/tty.c b/tty.c index 3d0e210b..77291daa 100644 --- a/tty.c +++ b/tty.c @@ -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)) -- cgit