]> git.llucax.com Git - software/libev.git/blobdiff - ev_poll.c
- have to re-check potentially closed fds regularly for epoll. this hurts
[software/libev.git] / ev_poll.c
index 07b1f5caf7a491c03356fbf9490fac5be485f505..b58ce8232a862c0d8219e8050be58e302bd50663 100644 (file)
--- a/ev_poll.c
+++ b/ev_poll.c
@@ -42,6 +42,10 @@ static void
 poll_modify (EV_P_ int fd, int oev, int nev)
 {
   int idx;
+
+  if (oev == nev)
+    return;
+
   array_needsize (pollidxs, pollidxmax, fd + 1, pollidx_init);
 
   idx = pollidxs [fd];
@@ -101,5 +105,15 @@ poll_init (EV_P_ int flags)
   method_modify = poll_modify;
   method_poll   = poll_poll;
 
+  pollidxs = 0; pollidxmax = 0;
+  polls    = 0; pollmax    = 0; pollcnt = 0;
+
   return EVMETHOD_POLL;
 }
+
+static void
+poll_destroy (EV_P)
+{
+  free (pollidxs);
+  free (polls);
+}