From 7c9f0919f2af1cbab0de88205179efb4ef818e3d Mon Sep 17 00:00:00 2001 From: David Klempner 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 8171c5f1dd1..9044892a926 100644 --- a/src/core/iomgr/pollset_multipoller_with_epoll.c +++ b/src/core/iomgr/pollset_multipoller_with_epoll.c @@ -33,11 +33,12 @@ #include -#ifdef GPR_POSIX_MULTIPOLL_WITH_EPOLL +#ifdef GPR_LINUX_MULTIPOLL_WITH_EPOLL #include #include #include +#include #include "src/core/iomgr/fd_posix.h" #include @@ -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 */