about summary refs log tree commit homepage
path: root/lib/PublicInbox/V2Writable.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/PublicInbox/V2Writable.pm')
-rw-r--r--lib/PublicInbox/V2Writable.pm7
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/PublicInbox/V2Writable.pm b/lib/PublicInbox/V2Writable.pm
index a0f041dd..8b31b69a 100644
--- a/lib/PublicInbox/V2Writable.pm
+++ b/lib/PublicInbox/V2Writable.pm
@@ -113,6 +113,7 @@ sub new {
                 im => undef, #  PublicInbox::Import
                 parallel => 1,
                 transact_bytes => 0,
+                total_bytes => 0,
                 current_info => '',
                 xpfx => $xpfx,
                 over => PublicInbox::OverIdx->new("$xpfx/over.sqlite3", 1),
@@ -659,6 +660,7 @@ sub checkpoint ($;$) {
 
                 $dbh->begin_work;
         }
+        $self->{total_bytes} += $self->{transact_bytes};
         $self->{transact_bytes} = 0;
 }
 
@@ -681,8 +683,9 @@ sub done {
         }
         $self->{over}->disconnect;
         delete $self->{bnote};
-        $self->{transact_bytes} = 0;
-        $self->lock_release if $shards;
+        my $nbytes = $self->{total_bytes};
+        $self->{total_bytes} = 0;
+        $self->lock_release(!!$nbytes) if $shards;
         $self->{-inbox}->git->cleanup;
 }