* 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);
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