IO::KQueue requires us to use fileno(DIRHANDLE) for setting up kqueue watches. This use of fileno() is only supported since Perl 5.22, so BSD users on older Perl will have to fall back to old polling.
This affects users of -watch, currently; but will affect other read-only Xapian users soon. --- lib/PublicInbox/DirIdle.pm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/PublicInbox/DirIdle.pm b/lib/PublicInbox/DirIdle.pm index daa2212b..458285e2 100644 --- a/lib/PublicInbox/DirIdle.pm +++ b/lib/PublicInbox/DirIdle.pm @@ -13,7 +13,8 @@ if ($^O eq 'linux' && eval { require Linux::Inotify2; 1 }) { $MAIL_IN = Linux::Inotify2::IN_MOVED_TO() | Linux::Inotify2::IN_CREATE(); $ino_cls = 'Linux::Inotify2'; -} elsif (eval { require PublicInbox::KQNotify }) { +# Perl 5.22+ is needed for fileno(DIRHANDLE) support: +} elsif ($^V ge v5.22 && eval { require PublicInbox::KQNotify }) { $MAIL_IN = PublicInbox::KQNotify::MOVED_TO_OR_CREATE(); $ino_cls = 'PublicInbox::KQNotify'; } else { -- unsubscribe: one-click, see List-Unsubscribe header archive: https://public-inbox.org/meta/