From f4d10a92abc46bf0156ff1b475304471c16405da Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Thu, 13 Apr 2023 02:42:56 -0600 Subject: Try to find misuses of textui.Progress - Add a runtime-check to Progress to notice if we deadlocked or forgot to call .Done(). - Add a runtime-check to Progress.Done() to panic if .Set() was never called (instead of the old behavior of deadlocking). - grep: Use `defer` when possible, to help remember to call .Done(). - grep: Always either call .Set() right away, or right before calling .Done(). --- lib/btrfsutil/rebuilt_tree.go | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'lib/btrfsutil/rebuilt_tree.go') diff --git a/lib/btrfsutil/rebuilt_tree.go b/lib/btrfsutil/rebuilt_tree.go index ffb2e5f..31a31be 100644 --- a/lib/btrfsutil/rebuilt_tree.go +++ b/lib/btrfsutil/rebuilt_tree.go @@ -259,11 +259,9 @@ func (tree *RebuiltTree) items(ctx context.Context, inc bool) containers.SortedM progressWriter.Set(stats) } } - if stats.Leafs.N > 0 { - stats.Leafs.N = stats.Leafs.D - progressWriter.Set(stats) - progressWriter.Done() - } + stats.Leafs.N = stats.Leafs.D + progressWriter.Set(stats) + progressWriter.Done() return index } -- cgit v1.2.3-2-g168b