diff options
author | 2017-07-12 15:59:56 -0700 | |
---|---|---|
committer | 2017-07-17 17:52:15 -0700 | |
commit | d40a7ae6c34a97c06e9bef3dc1a6e9774c5bf93c (patch) | |
tree | f463d4d2da0d26d5d2d3dc47c0b3c9220c140ba4 /src/core/lib/iomgr/ev_epoll_thread_pool_linux.c | |
parent | be803dc68756631c6c73121bb786382164373113 (diff) |
Add already_closed in grpc_fd_orphan
Diffstat (limited to 'src/core/lib/iomgr/ev_epoll_thread_pool_linux.c')
-rw-r--r-- | src/core/lib/iomgr/ev_epoll_thread_pool_linux.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/core/lib/iomgr/ev_epoll_thread_pool_linux.c b/src/core/lib/iomgr/ev_epoll_thread_pool_linux.c index 49be72c03e..68399b7f54 100644 --- a/src/core/lib/iomgr/ev_epoll_thread_pool_linux.c +++ b/src/core/lib/iomgr/ev_epoll_thread_pool_linux.c @@ -493,8 +493,8 @@ static int fd_wrapped_fd(grpc_fd *fd) { static void fd_orphan(grpc_exec_ctx *exec_ctx, grpc_fd *fd, grpc_closure *on_done, int *release_fd, - const char *reason) { - bool is_fd_closed = false; + bool already_closed, const char *reason) { + bool is_fd_closed = already_closed; grpc_error *error = GRPC_ERROR_NONE; epoll_set *unref_eps = NULL; @@ -505,7 +505,7 @@ static void fd_orphan(grpc_exec_ctx *exec_ctx, grpc_fd *fd, descriptor fd->fd (but we still own the grpc_fd structure). */ if (release_fd != NULL) { *release_fd = fd->fd; - } else { + } else if (!is_fd_closed) { close(fd->fd); is_fd_closed = true; } |