X-Git-Url: https://git.lttng.org/?p=urcu.git;a=blobdiff_plain;f=urcu.c;fp=urcu.c;h=4702ba9aea4c1bc55f180b658c28bc56c03dec96;hp=5ffeb79553b6374f0fb1a607b3862ed78dda63e2;hb=a77f7d8228bcf1259f8c4121ce02d4763424d45a;hpb=efa8d2c8143de5f4e53bf5ef6f491faf7d7a6bee diff --git a/urcu.c b/urcu.c index 5ffeb79..4702ba9 100644 --- a/urcu.c +++ b/urcu.c @@ -500,6 +500,8 @@ void rcu_register_thread(void) assert(!(URCU_TLS(rcu_reader).ctr & RCU_GP_CTR_NEST_MASK)); mutex_lock(&rcu_registry_lock); + assert(!URCU_TLS(rcu_reader).registered); + URCU_TLS(rcu_reader).registered = 1; rcu_init(); /* In case gcc does not support constructor attribute */ cds_list_add(&URCU_TLS(rcu_reader).node, ®istry); mutex_unlock(&rcu_registry_lock); @@ -508,6 +510,8 @@ void rcu_register_thread(void) void rcu_unregister_thread(void) { mutex_lock(&rcu_registry_lock); + assert(URCU_TLS(rcu_reader).registered); + URCU_TLS(rcu_reader).registered = 0; cds_list_del(&URCU_TLS(rcu_reader).node); mutex_unlock(&rcu_registry_lock); }