]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/DirIdle.pm
treewide: update to v3 Tor onions
[public-inbox.git] / lib / PublicInbox / DirIdle.pm
index 89cce305f872816d4048558859d5954b2b4c00cc..5437190d5e81c8926a9c1da363e91f38ae22bd08 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2020 all contributors <meta@public-inbox.org>
+# Copyright (C) 2020-2021 all contributors <meta@public-inbox.org>
 # License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
 
 # Used by public-inbox-watch for Maildir (and possibly MH in the future)
@@ -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 {
@@ -44,6 +45,7 @@ sub new {
 sub event_step {
        my ($self) = @_;
        my $cb = $self->{cb};
+       local $PublicInbox::DS::in_loop = 0; # waitpid() synchronously
        eval {
                my @events = $self->{inot}->read; # Linux::Inotify2->read
                $cb->($_) for @events;