X-Git-Url: https://git.liburcu.org/?p=urcu.git;a=blobdiff_plain;f=src%2Furcu-bp.c;h=675b5d6e8aea929e8b8a7a1e757c777292a89b4f;hp=c0fac8330bdc43a5d1eb58a6999057461c44a002;hb=6fd172f599e8d798e68974a786dd930d876f182e;hpb=5592d04940700ff2bb06307660e28e47fad0606b diff --git a/src/urcu-bp.c b/src/urcu-bp.c index c0fac83..675b5d6 100644 --- a/src/urcu-bp.c +++ b/src/urcu-bp.c @@ -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