X-Git-Url: http://www.git.stargrave.org/?p=public-inbox.git;a=blobdiff_plain;f=lib%2FPublicInbox%2FInbox.pm;h=7d5e048363f4c854cd17940d9af3aec0efc55e84;hp=b2b0b56fdd31f55795e9e11d3543dd06834f856e;hb=2a717d13f10fcdc69921d80cf94c47a694a175d4;hpb=3d52c093ad5ce7a32f8842d9ae020712f9786352 diff --git a/lib/PublicInbox/Inbox.pm b/lib/PublicInbox/Inbox.pm index b2b0b56f..7d5e0483 100644 --- a/lib/PublicInbox/Inbox.pm +++ b/lib/PublicInbox/Inbox.pm @@ -31,7 +31,7 @@ sub cleanup_task () { for my $ibx (values %$CLEANUP) { my $again; if ($have_devel_peek) { - foreach my $f (qw(mm search over)) { + foreach my $f (qw(mm search)) { # we bump refcnt by assigning tmp, here: my $tmp = $ibx->{$f} or next; next if Devel::Peek::SvREFCNT($tmp) > 2; @@ -45,9 +45,9 @@ sub cleanup_task () { $again = 1 if $git->cleanup; } } + check_inodes($ibx); if ($have_devel_peek) { - $again ||= !!($ibx->{over} || $ibx->{mm} || - $ibx->{search}); + $again ||= !!($ibx->{mm} || $ibx->{search}); } $next->{"$ibx"} = $ibx if $again; } @@ -407,9 +407,17 @@ sub unsubscribe_unlock { delete $self->{unlock_subs}->{$ident}; } +sub check_inodes ($) { + my ($self) = @_; + for (qw(over)) { # TODO: search, mm + $self->{$_}->check_inodes if $self->{$_}; + } +} + # called by inotify sub on_unlock { my ($self) = @_; + check_inodes($self); my $subs = $self->{unlock_subs} or return; for (values %$subs) { eval { $_->on_inbox_unlock($self) };