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/

Reply via email to