aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/lib/support
diff options
context:
space:
mode:
authorGravatar ncteisen <ncteisen@gmail.com>2017-03-09 11:16:25 -0800
committerGravatar ncteisen <ncteisen@gmail.com>2017-03-09 11:16:25 -0800
commitb3eee5c8c7edb9d3f1c727fdaf801933e9ef4797 (patch)
treedb7aa08608e112258734797d266689ed670a1349 /src/core/lib/support
parentffe4f5e0840c1879e974b2463384b0a461bba468 (diff)
parenteb064ec7b81b60c5e1eb47d6124d0c05056b3097 (diff)
Merge branch 'master' of https://github.com/grpc/grpc into to-grpc-err-is-human
Diffstat (limited to 'src/core/lib/support')
-rw-r--r--src/core/lib/support/sync.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/core/lib/support/sync.c b/src/core/lib/support/sync.c
index 9b5a4ac708..b52f004f74 100644
--- a/src/core/lib/support/sync.c
+++ b/src/core/lib/support/sync.c
@@ -37,6 +37,8 @@
#include <grpc/support/log.h>
#include <grpc/support/sync.h>
+#include <assert.h>
+
/* Number of mutexes to allocate for events, to avoid lock contention.
Should be a prime. */
enum { event_sync_partitions = 31 };
@@ -99,8 +101,12 @@ void gpr_ref_init(gpr_refcount *r, int n) { gpr_atm_rel_store(&r->count, n); }
void gpr_ref(gpr_refcount *r) { gpr_atm_no_barrier_fetch_add(&r->count, 1); }
void gpr_ref_non_zero(gpr_refcount *r) {
+#ifndef NDEBUG
gpr_atm prior = gpr_atm_no_barrier_fetch_add(&r->count, 1);
- GPR_ASSERT(prior > 0);
+ assert(prior > 0);
+#else
+ gpr_ref(r);
+#endif
}
void gpr_refn(gpr_refcount *r, int n) {