aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/iomgr
diff options
context:
space:
mode:
authorGravatar David Klempner <klempner@google.com>2015-02-11 13:26:18 -0800
committerGravatar David Klempner <klempner@google.com>2015-02-11 13:26:18 -0800
commit7c9f0919f2af1cbab0de88205179efb4ef818e3d (patch)
tree2b9a4fdbe4f7c023b618572bc1a8a750e258b0cd /src/core/iomgr
parent3a890a2290cec81b2be0a2ce7f821a95cccd43af (diff)
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
Diffstat (limited to 'src/core/iomgr')
-rw-r--r--src/core/iomgr/pollset_multipoller_with_epoll.c11
1 files 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 */