about summary refs log tree commit homepage
path: root/lib/PublicInbox/TailNotify.pm
DateCommit message (Collapse)
2023-12-29pure Perl inotify support
This is a step towards improving the out-of-the-box experience in achieving notifications without XS, extra downloads, and .so loading + runtime mmap overhead. This also fixes loongarch support of all Linux syscalls due to a bad regexp :x All the reachable Linux architectures listed at <https://portal.cfarm.net/machines/list/> should be supported. At the moment, there appears to be no reachable sparc* Linux machines available to cfarm users. Fixes: b0e5093aa3572a86 (syscall: add support for riscv64, 2022-08-11)
2023-09-08tail_notify: explicitly detect self deletion
This allows t/tail_notify.t to pass more reliably using FreeBSD with IO::KQueue.
2023-09-07tail_notify: reinstate watch on reopen
This fixes t/tail_notify.t on NetBSD 9.3 where the log file is deleted and later recreated.
2023-07-15tail_notify: cleanups and wakeup avoidance
Avoid adding redundant watches at initialization, and avoid unnecessarily wake ups when no timeout is specified.
2023-07-13t/imapd: workaround a Perl 5.36.0 readline regression
Buffered readline (and read) ops under Perl 5.36.0 fails to read new data after writes are made by other file handles (or processes). To fix and improve our test, introduce a new, (currently) test-only TailNotify class to use inotify or kevent if available to workaround it while avoiding infinite polling loops. Further refinements to these test APIs since we use the same pattern for testing daemons in many places. This also fixes the TEST_KILL_IMAPD condition in t/imapd.t under GNU/Linux, AFAIK that test was never reliable under FreeBSD. Link: https://bugs.debian.org/1040947