Skip to main content

futex_wake

Function futex_wake 

Source
pub fn futex_wake(
    word: &AtomicU32,
    count: FutexWakeCount,
    scope: FutexScope,
) -> Result<u32, Errno>
Expand description

futex(2) FUTEX_WAKE : réveille jusqu’à count waiters bloqués sur word.

  • word : le même mot futex que celui sur lequel les waiters se sont endormis (le noyau identifie la file d’attente par l’adresse).
  • count : [FutexWakeCount] — typiquement [FutexWakeCount::ONE] (relâche de Mutex) ou [FutexWakeCount::ALL] (Condvar::notify_all). Borné à INT_MAX par construction.
  • scope : doit correspondre à celui des futex_wait ciblés.

L’appelant publie en général la nouvelle valeur dans word (store) avant d’appeler futex_wake, pour que les waiters relisant *word voient l’état à jour.

Retour : le nombre de waiters effectivement réveillés (0 si aucun n’était en attente — ce n’est pas une erreur).

§Errors

  • [Errno::EFAULT] : pointeur invalide — inatteignable via cette API safe (word est une référence vivante). FUTEX_WAKE ne lit ni n’écrit le contenu du mot (clé d’adresse uniquement) et ne prend aucun timeout.