From 5458d831698f79c58adf955dc11753d3b560374d Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sat, 8 Aug 2020 04:59:49 +0000 Subject: dir_idle: require Perl 5.22+ for kqueue 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(-) (limited to 'lib/PublicInbox/DirIdle.pm') 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 { -- cgit v1.2.3-24-ge0c7