* the reclamation tread.
*/
static struct defer_queue __thread defer_queue;
-static LIST_HEAD(registry);
+static CDS_LIST_HEAD(registry);
static pthread_t tid_defer;
static void mutex_lock(pthread_mutex_t *mutex)
struct defer_queue *index;
mutex_lock(&rcu_defer_mutex);
- list_for_each_entry(index, ®istry, list) {
+ cds_list_for_each_entry(index, ®istry, list) {
head = CAA_LOAD_SHARED(index->head);
num_items += head - index->tail;
}
struct defer_queue *index;
unsigned long num_items = 0;
- if (list_empty(®istry))
+ if (cds_list_empty(®istry))
return;
mutex_lock(&rcu_defer_mutex);
- list_for_each_entry(index, ®istry, list) {
+ cds_list_for_each_entry(index, ®istry, list) {
index->last_head = CAA_LOAD_SHARED(index->head);
num_items += index->last_head - index->tail;
}
goto end;
}
synchronize_rcu();
- list_for_each_entry(index, ®istry, list)
+ cds_list_for_each_entry(index, ®istry, list)
rcu_defer_barrier_queue(index, index->last_head);
end:
mutex_unlock(&rcu_defer_mutex);
mutex_lock(&defer_thread_mutex);
mutex_lock(&rcu_defer_mutex);
- was_empty = list_empty(®istry);
- list_add(&defer_queue.list, ®istry);
+ was_empty = cds_list_empty(®istry);
+ cds_list_add(&defer_queue.list, ®istry);
mutex_unlock(&rcu_defer_mutex);
if (was_empty)
mutex_lock(&defer_thread_mutex);
mutex_lock(&rcu_defer_mutex);
- list_del(&defer_queue.list);
+ cds_list_del(&defer_queue.list);
_rcu_defer_barrier_thread();
free(defer_queue.q);
defer_queue.q = NULL;
- is_empty = list_empty(®istry);
+ is_empty = cds_list_empty(®istry);
mutex_unlock(&rcu_defer_mutex);
if (is_empty)
void rcu_defer_exit(void)
{
- assert(list_empty(®istry));
+ assert(cds_list_empty(®istry));
}