Skip to content
Snippets Groups Projects
Commit 7c9f0919 authored by David Klempner's avatar David Klempner
Browse files

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
parent 3a890a22
No related branches found
No related tags found
No related merge requests found
...@@ -33,11 +33,12 @@ ...@@ -33,11 +33,12 @@
#include <grpc/support/port_platform.h> #include <grpc/support/port_platform.h>
#ifdef GPR_POSIX_MULTIPOLL_WITH_EPOLL #ifdef GPR_LINUX_MULTIPOLL_WITH_EPOLL
#include <errno.h> #include <errno.h>
#include <string.h> #include <string.h>
#include <sys/epoll.h> #include <sys/epoll.h>
#include <unistd.h>
#include "src/core/iomgr/fd_posix.h" #include "src/core/iomgr/fd_posix.h"
#include <grpc/support/alloc.h> #include <grpc/support/alloc.h>
...@@ -139,14 +140,16 @@ static int multipoll_with_epoll_pollset_maybe_work( ...@@ -139,14 +140,16 @@ static int multipoll_with_epoll_pollset_maybe_work(
gpr_mu_lock(&pollset->mu); gpr_mu_lock(&pollset->mu);
pollset->counter -= 1; pollset->counter -= 1;
/* TODO(klempner): This should be a signal and not a broadcast, althoughit /* TODO(klempner): This should signal once per event rather than broadcast,
* probably doesn't matter because */ * 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); gpr_cv_broadcast(&pollset->cv);
return 1; return 1;
} }
static void multipoll_with_epoll_pollset_destroy(grpc_pollset *pollset) { static void multipoll_with_epoll_pollset_destroy(grpc_pollset *pollset) {
pollset_hdr *h = pollset->data.ptr; pollset_hdr *h = pollset->data.ptr;
close(h->epoll_fd);
gpr_free(h); gpr_free(h);
} }
...@@ -190,4 +193,4 @@ void grpc_platform_become_multipoller(grpc_pollset *pollset, grpc_fd **fds, ...@@ -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 */
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment