aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core
diff options
context:
space:
mode:
authorGravatar Craig Tiller <ctiller@google.com>2015-06-08 08:14:27 -0700
committerGravatar Craig Tiller <ctiller@google.com>2015-06-08 08:14:27 -0700
commit5049bf7a6e9955b40a44648ae22b80128f81d00a (patch)
treebbb7db467ac2f3994b2837cda1b1760c88645888 /src/core
parent723e84ef1a24479f07b88ac70e5eae41cbe77fb8 (diff)
Fix ownership
Diffstat (limited to 'src/core')
-rw-r--r--src/core/iomgr/pollset_set_posix.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/core/iomgr/pollset_set_posix.c b/src/core/iomgr/pollset_set_posix.c
index c00d6e6e57..005e938398 100644
--- a/src/core/iomgr/pollset_set_posix.c
+++ b/src/core/iomgr/pollset_set_posix.c
@@ -49,7 +49,11 @@ void grpc_pollset_set_init(grpc_pollset_set *pollset_set) {
}
void grpc_pollset_set_destroy(grpc_pollset_set *pollset_set) {
+ size_t i;
gpr_mu_destroy(&pollset_set->mu);
+ for (i = 0; i < pollset_set->fd_count; i++) {
+ GRPC_FD_UNREF(pollset_set->fds[i], "pollset");
+ }
gpr_free(pollset_set->pollsets);
gpr_free(pollset_set->fds);
}
@@ -95,6 +99,7 @@ void grpc_pollset_set_add_fd(grpc_pollset_set *pollset_set, grpc_fd *fd) {
pollset_set->fds = gpr_realloc(
pollset_set->fds, pollset_set->fd_capacity * sizeof(*pollset_set->fds));
}
+ GRPC_FD_REF(fd, "pollset_set");
pollset_set->fds[pollset_set->fd_count++] = fd;
for (i = 0; i < pollset_set->pollset_count; i++) {
grpc_pollset_add_fd(pollset_set->pollsets[i], fd);
@@ -110,6 +115,7 @@ void grpc_pollset_set_del_fd(grpc_pollset_set *pollset_set, grpc_fd *fd) {
pollset_set->fd_count--;
GPR_SWAP(grpc_fd *, pollset_set->fds[i],
pollset_set->fds[pollset_set->pollset_count]);
+ GRPC_FD_UNREF(fd, "pollset_set");
break;
}
}