Lines Matching full:nodes
289 /* The nodes for the mutex reside in this structure (on which we try to avoid
295 } nodes[NUM_CONTEXTS] __attribute__((__aligned__(64))); variable
303 nodes[id].next = -1; in mcs_mutex_lock()
304 nodes[id].locked = 1; in mcs_mutex_lock()
307 qatomic_set(&nodes[prev].next, id); in mcs_mutex_lock()
308 while (qatomic_read(&nodes[id].locked) == 1) { in mcs_mutex_lock()
309 qemu_futex_wait(&nodes[id].locked, 1); in mcs_mutex_lock()
317 if (qatomic_read(&nodes[id].next) == -1) { in mcs_mutex_unlock()
323 while (qatomic_read(&nodes[id].next) == -1) { in mcs_mutex_unlock()
325 * nodes[prev].next yet. in mcs_mutex_unlock()
331 next = qatomic_read(&nodes[id].next); in mcs_mutex_unlock()
332 nodes[next].locked = 0; in mcs_mutex_unlock()
333 qemu_futex_wake_single(&nodes[next].locked); in mcs_mutex_unlock()