]> Sergey Matveev's repositories - public-inbox.git/commitdiff
dir_idle: require Perl 5.22+ for kqueue
authorEric Wong <e@yhbt.net>
Sat, 8 Aug 2020 04:59:49 +0000 (04:59 +0000)
committerEric Wong <e@yhbt.net>
Sat, 8 Aug 2020 10:47:17 +0000 (10:47 +0000)
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

index daa2212b4c0f5050eaf38f61b93c2f202ce1af0f..458285e24d72732e539d0f4a6f1f5d52849af266 100644 (file)
@@ -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 {