LibCore: Always reset the polled revents field back to 0

One benefit of using `poll` over `select` is that we can re-use the poll
structure list. But there's no guarantee that the underlying system will
reset the `revents` field back to 0. So let's explicitly do so.
This commit is contained in:
Timothy Flynn 2025-07-07 13:36:41 -04:00 committed by Andrew Kaster
parent 0499d216b8
commit f46b721c57
Notes: github-actions[bot] 2025-07-07 21:54:20 +00:00

View file

@ -739,10 +739,14 @@ ErrorOr<ByteString> readlink(StringView pathname)
ErrorOr<int> poll(Span<struct pollfd> poll_fds, int timeout)
{
for (auto& poll_fd : poll_fds)
poll_fd.revents = 0;
auto const rc = ::poll(poll_fds.data(), poll_fds.size(), timeout);
if (rc < 0)
return Error::from_syscall("poll"sv, errno);
return { rc };
return rc;
}
unsigned hardware_concurrency()