mirror of
https://github.com/zebrajr/ladybird.git
synced 2025-12-06 12:20:00 +01:00
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:
parent
0499d216b8
commit
f46b721c57
|
|
@ -739,10 +739,14 @@ ErrorOr<ByteString> readlink(StringView pathname)
|
||||||
|
|
||||||
ErrorOr<int> poll(Span<struct pollfd> poll_fds, int timeout)
|
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);
|
auto const rc = ::poll(poll_fds.data(), poll_fds.size(), timeout);
|
||||||
if (rc < 0)
|
if (rc < 0)
|
||||||
return Error::from_syscall("poll"sv, errno);
|
return Error::from_syscall("poll"sv, errno);
|
||||||
return { rc };
|
|
||||||
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned hardware_concurrency()
|
unsigned hardware_concurrency()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user