/// Wrapper around the libc poll call. pubfn poll(fds: &mut[pollfd], timeout: i32) -> Result<usize> { let r = unsafe { libc::poll(fds.as_mut_ptr(), fds.len() as libc::nfds_t, timeout as libc::c_int) }; if r >= 0 { Ok(r as usize) } else {
from_code("poll", -io::Error::last_os_error().raw_os_error().unwrap()).map(|_| unreachable!())
}
}
/// Builds a pollfd array, polls it, and returns the poll descriptors which have non-zero revents. pubfn poll_all<'a>(desc: &[&'a dyn Descriptors], timeout: i32) -> Result<Vec<(&'a dyn Descriptors, Flags)>> {
letmut pollfds: Vec<pollfd> = vec!(); letmut indices = vec!(); for v2 in desc.iter().map(|q| q.get()) { let v = v2?;
indices.push(pollfds.len() .. pollfds.len()+v.len());
pollfds.extend(v);
};
poll(&mut pollfds, timeout)?;
letmut res = vec!(); for (i, r) in indices.into_iter().enumerate() { let z = desc[i].revents(&pollfds[r])?; if !z.is_empty() { res.push((desc[i], z)); }
}
Ok(res)
}
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.16 Sekunden
(vorverarbeitet am 2026-06-21)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.