From 7c9f0919f2af1cbab0de88205179efb4ef818e3d Mon Sep 17 00:00:00 2001
From: David Klempner <klempner@google.com>
Date: Wed, 11 Feb 2015 13:26:18 -0800
Subject: [PATCH] Address pull request thread comments

1. Close the epoll_fd at destroy
2. Finish the comment about signal/broadcast on the cv
3. Rename GPR_POSIX_MULTIPOLL_WITH_EPOLL to
GPR_LINUX_MULTIPOLL_WITH_EPOLL
---
 src/core/iomgr/pollset_multipoller_with_epoll.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/src/core/iomgr/pollset_multipoller_with_epoll.c b/src/core/iomgr/pollset_multipoller_with_epoll.c
index 8171c5f1dd..9044892a92 100644
--- a/src/core/iomgr/pollset_multipoller_with_epoll.c
+++ b/src/core/iomgr/pollset_multipoller_with_epoll.c
@@ -33,11 +33,12 @@
 
 #include <grpc/support/port_platform.h>
 
-#ifdef GPR_POSIX_MULTIPOLL_WITH_EPOLL
+#ifdef GPR_LINUX_MULTIPOLL_WITH_EPOLL
 
 #include <errno.h>
 #include <string.h>
 #include <sys/epoll.h>
+#include <unistd.h>
 
 #include "src/core/iomgr/fd_posix.h"
 #include <grpc/support/alloc.h>
@@ -139,14 +140,16 @@ static int multipoll_with_epoll_pollset_maybe_work(
 
   gpr_mu_lock(&pollset->mu);
   pollset->counter -= 1;
-  /* TODO(klempner): This should be a signal and not a broadcast, althoughit
-   * probably doesn't matter because  */
+  /* TODO(klempner): This should signal once per event rather than broadcast,
+   * although it probably doesn't matter because threads will generally be
+   * blocked in epoll_wait rather than being blocked on the cv. */
   gpr_cv_broadcast(&pollset->cv);
   return 1;
 }
 
 static void multipoll_with_epoll_pollset_destroy(grpc_pollset *pollset) {
   pollset_hdr *h = pollset->data.ptr;
+  close(h->epoll_fd);
   gpr_free(h);
 }
 
@@ -190,4 +193,4 @@ void grpc_platform_become_multipoller(grpc_pollset *pollset, grpc_fd **fds,
   }
 }
 
-#endif  /* GPR_POSIX_MULTIPOLL_WITH_EPOLL */
+#endif  /* GPR_LINUX_MULTIPOLL_WITH_EPOLL */
-- 
GitLab