From f432e03e319f1ece247021aa0810c4af1cb50042 Mon Sep 17 00:00:00 2001 From: root Date: Wed, 31 Oct 2007 17:55:55 +0000 Subject: beginners mistake --- ev.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'ev.c') diff --git a/ev.c b/ev.c index 246b38f..e36f182 100644 --- a/ev.c +++ b/ev.c @@ -41,8 +41,6 @@ #include #include -#define HAVE_EPOLL 1 - #ifndef HAVE_MONOTONIC # ifdef CLOCK_MONOTONIC # define HAVE_MONOTONIC 1 @@ -190,6 +188,19 @@ queue_events (W *events, int eventcnt, int type) event (events [i], type); } +/* called on EBADF to verify fds */ +static void +fd_recheck () +{ + int fd; + + for (fd = 0; fd < anfdmax; ++fd) + if (anfds [fd].wev) + if (fcntl (fd, F_GETFD) == -1 && errno == EBADF) + while (anfds [fd].head) + evio_stop (anfds [fd].head); +} + /*****************************************************************************/ static struct ev_timer **timers; -- cgit v1.2.3