Skip to content
Snippets Groups Projects
Commit a8c2d025 authored by Nicolas Noble's avatar Nicolas Noble
Browse files

Merge pull request #2281 from ctiller/and-he-told-us-of-his-life

Fix iomgr shutdown TSAN races
parents 0beaad36 31231348
No related branches found
No related tags found
No related merge requests found
...@@ -74,6 +74,7 @@ static void freelist_fd(grpc_fd *fd) { ...@@ -74,6 +74,7 @@ static void freelist_fd(grpc_fd *fd) {
gpr_mu_lock(&fd_freelist_mu); gpr_mu_lock(&fd_freelist_mu);
fd->freelist_next = fd_freelist; fd->freelist_next = fd_freelist;
fd_freelist = fd; fd_freelist = fd;
grpc_iomgr_unregister_object(&fd->iomgr_object);
gpr_mu_unlock(&fd_freelist_mu); gpr_mu_unlock(&fd_freelist_mu);
} }
...@@ -139,7 +140,6 @@ static void unref_by(grpc_fd *fd, int n) { ...@@ -139,7 +140,6 @@ static void unref_by(grpc_fd *fd, int n) {
#endif #endif
old = gpr_atm_full_fetch_add(&fd->refst, -n); old = gpr_atm_full_fetch_add(&fd->refst, -n);
if (old == n) { if (old == n) {
grpc_iomgr_unregister_object(&fd->iomgr_object);
freelist_fd(fd); freelist_fd(fd);
} else { } else {
GPR_ASSERT(old > n); GPR_ASSERT(old > n);
......
...@@ -155,9 +155,9 @@ static void do_request(void *rp) { ...@@ -155,9 +155,9 @@ static void do_request(void *rp) {
grpc_resolve_cb cb = r->cb; grpc_resolve_cb cb = r->cb;
gpr_free(r->name); gpr_free(r->name);
gpr_free(r->default_port); gpr_free(r->default_port);
cb(arg, resolved);
grpc_iomgr_unregister_object(&r->iomgr_object); grpc_iomgr_unregister_object(&r->iomgr_object);
gpr_free(r); gpr_free(r);
cb(arg, resolved);
} }
void grpc_resolved_addresses_destroy(grpc_resolved_addresses *addrs) { void grpc_resolved_addresses_destroy(grpc_resolved_addresses *addrs) {
......
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