Skip to main content

ppoll

Function ppoll 

Source
pub fn ppoll(
    fds: &mut [PollFd<'_>],
    timeout: Option<Duration>,
    sigmask: Option<&SignalMask>,
) -> Result<usize, Errno>
Expand description

ppoll(2). Attend un événement sur l’un des fds jusqu’à timeout.

  • timeout = None → attente indéfinie (timespec NULL).
  • timeout = Some(d) → attente bornée ; Duration::ZERO = sondage non bloquant.
  • sigmask = NoneNULL (aucune substitution de masque ; réservé à un usage futur).

Au retour, chaque [PollFd] de fds porte ses revents remplis par le kernel (vide si le descripteur n’est pas prêt).

Retour : nombre de fd dont revents est non vide ; 0 = expiration.

§Errors

  • [Errno::EINTR] : un signal a interrompu l’attente — remonté tel quel (ADR-021 §2), aucune reprise automatique en couche 0.
  • [Errno::EINVAL] : timespec invalide — impossible via la conversion défensive interne (tv_nsec < 1e9, tv_sec ≥ 0).
  • [Errno::EFAULT] : pointeur invalide — inatteignable via cette API safe (la slice et le masque proviennent de références vivantes).