about summary refs log tree commit homepage
diff options
context:
space:
mode:
authorEric Wong <e@yhbt.net>2020-08-08 04:59:49 +0000
committerEric Wong <e@yhbt.net>2020-08-08 10:47:17 +0000
commit5458d831698f79c58adf955dc11753d3b560374d (patch)
tree15f6b12a120a3070080e6103c3fcc9afff4e3e7e
parent683e5fbbfef867ff04b376b3d5230976004a6c7a (diff)
downloadpublic-inbox-5458d831698f79c58adf955dc11753d3b560374d.tar.gz
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.
-rw-r--r--lib/PublicInbox/DirIdle.pm3
1 files changed, 2 insertions, 1 deletions
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 {