about summary refs log tree commit homepage
path: root/lib/PublicInbox/Select.pm
DateCommit message (Collapse)
2023-11-26select+poll: have caller retry on EINTR
We can't assume signals are blocked when neither signalfd nor EVFILT_SIGNAL are in use. So just return an empty result so the caller can recalculate the timeout. I found this bug while making xt/httpd-async-stream.t use our event loop to reap processes but have abandoned that effort for now since it didn't save any code.
2023-11-01ds: move maxevents further down the stack
The epoll implementation is the only one which respects the limit (kevent would, but IO::KQueue does not). In any case, I'm not a fan of the maxevents=1000 historical default since it leads to fairness problems with shared non-blocking listeners across multiple daemon workers.
2023-10-31poll+select: check EBADF + POLLNVAL errors
I hit this in via select running -cindex with some other experimental patches. I can't reproduce the problem, though, but this ensure we have a chance to diagnose it if it happens again instead of looping on select(2) => EBADF.
2023-09-12provide select(2) backend for PublicInbox::DS
This is safer than relying on an internal API of IO::Poll and doesn't create extra references to IO globs like the public one.