| requeue_pi_wake_futex(9) - phpMan
REQUEUE_PI_WAKE_FUTE(9) Futex API reference REQUEUE_PI_WAKE_FUTE(9)
NAME
requeue_pi_wake_futex - Wake a task that acquired the lock during requeue
SYNOPSIS
void requeue_pi_wake_futex(struct futex_q * q, union futex_key * key,
struct futex_hash_bucket * hb);
ARGUMENTS
q
the futex_q
key
the key of the requeue target futex
hb
the hash_bucket of the requeue target futex
DESCRIPTION
During futex_requeue, with requeue_pi=1, it is possible to acquire the target futex if it
is uncontended or via a lock steal. Set the futex_q key to the requeue target futex so the
waiter can detect the wakeup on the right futex, but remove it from the hb and NULL the
rt_waiter so it can detect atomic lock acquisition. Set the q->lock_ptr to the requeue
target hb->lock to protect access to the pi_state to fixup the owner later. Must be called
with both q->lock_ptr and hb->lock held.
AUTHOR
Rusty Russell <rusty AT rustcorp.au>
Author.
COPYRIGHT
Kernel Hackers Manual 4.8. January 2017 REQUEUE_PI_WAKE_FUTE(9)
|