From eedee631430b5b3b9212a48f03280ca50bae4cc5 Mon Sep 17 00:00:00 2001 From: dolonet Date: Mon, 30 Mar 2026 16:17:51 +0000 Subject: [PATCH] Address review: use slices.Clone, simplify concurrent test - Replace manual make+copy with slices.Clone in Snapshot() - Remove redundant _ = len(data); Snapshot() call alone is sufficient to exercise the lock under -race --- mtglib/internal/doppel/scout_conn_collected.go | 4 ++-- mtglib/internal/doppel/scout_conn_collected_test.go | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/mtglib/internal/doppel/scout_conn_collected.go b/mtglib/internal/doppel/scout_conn_collected.go index cdcfbeb..5a4de92 100644 --- a/mtglib/internal/doppel/scout_conn_collected.go +++ b/mtglib/internal/doppel/scout_conn_collected.go @@ -1,6 +1,7 @@ package doppel import ( + "slices" "sync" "time" ) @@ -43,8 +44,7 @@ func (s *ScoutConnCollected) MarkWrite() { // Snapshot returns a copy of the collected data and the write index. func (s *ScoutConnCollected) Snapshot() ([]ScoutConnResult, int) { s.mu.Lock() - snapshot := make([]ScoutConnResult, len(s.data)) - copy(snapshot, s.data) + snapshot := slices.Clone(s.data) writeIndex := s.writeIndex s.mu.Unlock() diff --git a/mtglib/internal/doppel/scout_conn_collected_test.go b/mtglib/internal/doppel/scout_conn_collected_test.go index fad45dd..e49f6bd 100644 --- a/mtglib/internal/doppel/scout_conn_collected_test.go +++ b/mtglib/internal/doppel/scout_conn_collected_test.go @@ -68,8 +68,8 @@ func (suite *ScoutConnCollectedTestSuite) TestConcurrentAddSnapshot() { defer wg.Done() for i := 0; i < 1000; i++ { - data, _ := collected.Snapshot() - _ = len(data) + // call Snapshot concurrently to exercise the lock under -race + collected.Snapshot() //nolint:errcheck } }()