sub add_watches {
my ($self, $dirs, $gone) = @_;
my $fl = $MAIL_IN | ($gone ? $MAIL_GONE : 0);
+ my @ret;
for my $d (@$dirs) {
- $self->{inot}->watch($d, $fl);
+ my $w = $self->{inot}->watch($d, $fl) or next;
+ push @ret, $w;
}
PublicInbox::FakeInotify::poll_once($self) if !$ino_cls;
+ @ret
}
sub rm_watches {
warn "$self->{inot}->read err: $@\n" if $@;
}
+sub force_close {
+ my ($self) = @_;
+ my $inot = delete $self->{inot} // return;
+ if ($inot->can('fh')) { # Linux::Inotify2 2.3+
+ close($inot->fh) or warn "CLOSE ERROR: $!";
+ } elsif ($inot->isa('Linux::Inotify2')) {
+ require PublicInbox::LI2Wrap;
+ PublicInbox::LI2Wrap::wrapclose($inot);
+ }
+}
+
1;