X-Git-Url: https://git.lttng.org/?p=urcu.git;a=blobdiff_plain;f=urcu.c;h=4702ba9aea4c1bc55f180b658c28bc56c03dec96;hp=5ffeb79553b6374f0fb1a607b3862ed78dda63e2;hb=6ef5ddc9b4e136e250f3c5f292f847e6849e6200;hpb=64f469e628fe45059f091f2808188fb52fa109c9 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); }