Lines Matching +full:remove +full:- +full:item

2  * urcu-mb.c
24 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
33 #include "qemu/main-loop.h"
87 qatomic_set(&index->waiting, true); in wait_for_readers()
90 /* Here, order the stores to index->waiting before the loads of in wait_for_readers()
91 * index->ctr. Pairs with smp_mb_placeholder() in rcu_read_unlock(), in wait_for_readers()
92 * ensuring that the loads of index->ctr are sequentially consistent. in wait_for_readers()
96 * on architectures with 32-bit longs; see synchronize_rcu(). in wait_for_readers()
101 if (!rcu_gp_ongoing(&index->ctr)) { in wait_for_readers()
108 qatomic_set(&index->waiting, false); in wait_for_readers()
110 notifier_list_notify(&index->force_rcu, NULL); in wait_for_readers()
124 * thread must exit its RCU read-side critical section before in wait_for_readers()
129 * rcu_unregister_thread() may remove nodes from &qsreaders instead in wait_for_readers()
148 /* Write RCU-protected pointers before reading p_rcu_reader->ctr. in synchronize_rcu()
151 * Also orders write to RCU-protected pointers before in synchronize_rcu()
159 /* For architectures with 32-bit longs, a two-subphases algorithm in synchronize_rcu()
162 * Switch parity: 0 -> 1, 1 -> 0. in synchronize_rcu()
179 /* Multi-producer, single-consumer queue based on urcu/static/wfqueue.h
191 node->next = NULL; in enqueue()
198 old_tail = qatomic_xchg(&tail, &node->next); in enqueue()
201 * ... until it is pointed to from another item in the list. in enqueue()
222 next = qatomic_load_acquire(&node->next); in try_dequeue()
300 n--; in call_rcu_thread()
301 node->func(node); in call_rcu_thread()
310 node->func = func; in call_rcu1()
325 qemu_event_set(&event->drain_complete_event); in drain_rcu_callback()
375 assert(get_ptr_rcu_reader()->ctr == 0); in rcu_register_thread()
391 notifier_list_add(&get_ptr_rcu_reader()->force_rcu, n); in rcu_add_force_rcu_notifier()
430 atfork_depth--; in rcu_disable_atfork()