Use initial-exec tls model
[urcu.git] / src / urcu-bp.c
index c0fac8330bdc43a5d1eb58a6999057461c44a002..675b5d6e8aea929e8b8a7a1e757c777292a89b4f 100644 (file)
@@ -142,7 +142,7 @@ struct rcu_gp rcu_gp = { .ctr = RCU_GP_COUNT };
  * Pointer to registry elements. Written to only by each individual reader. Read
  * by both the reader and the writers.
  */
-DEFINE_URCU_TLS(struct rcu_reader *, rcu_reader);
+DEFINE_URCU_TLS_IE(struct rcu_reader *, rcu_reader);
 
 static CDS_LIST_HEAD(registry);
 
@@ -593,8 +593,13 @@ void rcu_sys_membarrier_status(int available)
 static
 void rcu_sys_membarrier_status(int available)
 {
-       if (available)
-               urcu_bp_has_sys_membarrier = 1;
+       /*
+        * membarrier has blocking behavior, which changes the
+        * application behavior too much compared to using barriers when
+        * synchronize_rcu is used repeatedly (without using call_rcu).
+        * Don't use membarrier for now, unless its use has been
+        * explicitly forced when building liburcu.
+        */
 }
 #endif
 
This page took 0.022774 seconds and 4 git commands to generate.