diff --git a/pkg/telemetry/statsworker.go b/pkg/telemetry/statsworker.go index 075a469af..3a0c63ee0 100644 --- a/pkg/telemetry/statsworker.go +++ b/pkg/telemetry/statsworker.go @@ -162,7 +162,7 @@ func (s *StatsWorker) Close(guard *ReferenceGuard) bool { func (s *StatsWorker) Closed(guard *ReferenceGuard) bool { s.lock.Lock() defer s.lock.Unlock() - if !s.closedAt.IsZero() { + if s.closedAt.IsZero() { s.refCount.Activate(guard) return false } diff --git a/pkg/telemetry/statsworker_test.go b/pkg/telemetry/statsworker_test.go new file mode 100644 index 000000000..f7ae48816 --- /dev/null +++ b/pkg/telemetry/statsworker_test.go @@ -0,0 +1,19 @@ +package telemetry + +import ( + "testing" + + "github.com/stretchr/testify/require" +) + +func TestStatsWorker(t *testing.T) { + t.Run("reference counted close works", func(t *testing.T) { + var g0, g1 ReferenceGuard + w := newStatsWorker(t.Context(), nil, "", "", "", "", &g0) + require.False(t, w.Closed(&g1)) + require.False(t, w.Close(&g0)) + require.False(t, w.Closed(&g1)) + require.True(t, w.Close(&g1)) + require.True(t, w.Closed(&g1)) + }) +}