]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/InboxIdle.pm
treewide: replace /^I: / prefix with /^# /
[public-inbox.git] / lib / PublicInbox / InboxIdle.pm
index 35aed696daff61454ba5f6370020b848b6b8fb70..005e263612d409c7a794bcc2eed1e08a47ee793e 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2020 all contributors <meta@public-inbox.org>
+# Copyright (C) all contributors <meta@public-inbox.org>
 # License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
 
 # fields:
@@ -7,7 +7,7 @@
 package PublicInbox::InboxIdle;
 use strict;
 use parent qw(PublicInbox::DS);
-use PublicInbox::Syscall qw(EPOLLIN EPOLLET);
+use PublicInbox::Syscall qw(EPOLLIN);
 my $IN_MODIFY = 0x02; # match Linux inotify
 my $ino_cls;
 if ($^O eq 'linux' && eval { require Linux::Inotify2; 1 }) {
@@ -30,9 +30,9 @@ sub in2_arm ($$) { # PublicInbox::Config::each_inbox callback
        my $old_ibx = $cur->[0];
        $cur->[0] = $ibx;
        if ($old_ibx) {
-               $ibx->{unlock_subs} and
-                       die "BUG: $dir->{unlock_subs} should not exist";
+               my $u = $ibx->{unlock_subs};
                $ibx->{unlock_subs} = $old_ibx->{unlock_subs};
+               %{$ibx->{unlock_subs}} = (%$u, %{$ibx->{unlock_subs}}) if $u;
 
                # Linux::Inotify2::Watch::name matches if watches are the
                # same, no point in replacing a watch of the same name
@@ -48,11 +48,9 @@ sub in2_arm ($$) { # PublicInbox::Config::each_inbox callback
                $self->{on_unlock}->{$w->name} = $ibx;
        } else {
                warn "E: ".ref($inot)."->watch($lock, IN_MODIFY) failed: $!\n";
-               if ($!{ENOSPC} && $^O eq 'linux') {
-                       warn <<"";
-I: consider increasing /proc/sys/fs/inotify/max_user_watches
+               warn <<"" if $!{ENOSPC} && $^O eq 'linux';
+# consider increasing /proc/sys/fs/inotify/max_user_watches
 
-               }
        }
 
        # TODO: detect deleted packs (and possibly other files)
@@ -73,7 +71,7 @@ sub new {
        if ($ino_cls) {
                $inot = $ino_cls->new or die "E: $ino_cls->new: $!";
                my $io = PublicInbox::In2Tie::io($inot);
-               $self->SUPER::new($io, EPOLLIN | EPOLLET);
+               $self->SUPER::new($io, EPOLLIN);
        } else {
                require PublicInbox::FakeInotify;
                $inot = PublicInbox::FakeInotify->new;