From 96be5498180a686d3b771e5eb332fd4c6ced7dde Mon Sep 17 00:00:00 2001 From: leitner Date: Sat, 1 Nov 2003 04:44:33 +0000 Subject: [PATCH] handle errors signalled by epoll --- io/io_waituntil2.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/io/io_waituntil2.c b/io/io_waituntil2.c index 7bda598..f8a655f 100644 --- a/io/io_waituntil2.c +++ b/io/io_waituntil2.c @@ -27,6 +27,11 @@ int64 io_waituntil2(int64 milliseconds) { for (i=n-1; i>=0; --i) { io_entry* e=array_get(&io_fds,sizeof(io_entry),y[i].data.fd); if (e) { + if (y[i].events&(EPOLLERR|EPOLLHUP)) { + /* error; signal whatever app is looking for */ + if (e->wantread) y[i].events|=EPOLLIN; + if (e->wantwrite) y[i].events|=EPOLLOUT; + } if (!e->canread && (y[i].events&EPOLLIN)) { e->canread=1; e->next_read=first_readable;