diff options
Diffstat (limited to 'ev.c')
-rw-r--r-- | ev.c | 15 |
1 files changed, 13 insertions, 2 deletions
@@ -41,8 +41,6 @@ #include <sys/time.h> #include <time.h> -#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; |