lib/PublicInbox/GitAsyncCat.pm | 8 ++++++++ diff --git a/lib/PublicInbox/GitAsyncCat.pm b/lib/PublicInbox/GitAsyncCat.pm index b32c2fd3cab4b6c665df483378b01f42952102c6..2d601542964224de7c1d4fc630eda40929e50386 100644 --- a/lib/PublicInbox/GitAsyncCat.pm +++ b/lib/PublicInbox/GitAsyncCat.pm @@ -45,6 +45,12 @@ $self->close; } } +sub git_tmp_cleanup { + my ($git) = @_; + $git->cleanup(1) and + PublicInbox::DS::add_timer(3, \&git_tmp_cleanup, $git); +} + sub ibx_async_cat ($$$$) { my ($ibx, $oid, $cb, $arg) = @_; my $git = $ibx->{git} // $ibx->git; @@ -63,6 +69,8 @@ $git->cat_async($oid, $cb, $arg); $git->{async_cat} //= do { my $self = bless { git => $git }, __PACKAGE__; $git->{in}->blocking(0); + $git->{-tmp} and PublicInbox::DS::add_uniq_timer( + 3, \&git_tmp_cleanup, $git); $self->SUPER::new($git->{in}, EPOLLIN|EPOLLET); \undef; # this is a true ref() };