summaryrefslogtreecommitdiff
path: root/ev.c
diff options
context:
space:
mode:
Diffstat (limited to 'ev.c')
-rw-r--r--ev.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/ev.c b/ev.c
index 246b38f..e36f182 100644
--- a/ev.c
+++ b/ev.c
@@ -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;