diff --git a/internal/csync/doc.go b/internal/csync/doc.go new file mode 100644 index 0000000000000000000000000000000000000000..b44fa2dac52172a8753e620e19f5c8d0a0481618 --- /dev/null +++ b/internal/csync/doc.go @@ -0,0 +1,3 @@ +// Package csync provides concurrent data structures for safe access in +// multi-threaded environments. +package csync diff --git a/internal/csync/slices_test.go b/internal/csync/slices_test.go index 414f6fe25047fa4bdbbaf205cde2c7568fcb4d28..8dafc1c1f4462dc45e2eb1fdeb71ffeacef260c1 100644 --- a/internal/csync/slices_test.go +++ b/internal/csync/slices_test.go @@ -260,22 +260,17 @@ func TestSlice(t *testing.T) { var wg sync.WaitGroup // Concurrent appends - for i := 0; i < numGoroutines; i++ { - wg.Add(1) + for i := range numGoroutines { + wg.Add(2) go func(start int) { defer wg.Done() - for j := 0; j < itemsPerGoroutine; j++ { + for j := range itemsPerGoroutine { s.Append(start*itemsPerGoroutine + j) } }(i) - } - - // Concurrent reads - for i := 0; i < numGoroutines; i++ { - wg.Add(1) go func() { defer wg.Done() - for j := 0; j < itemsPerGoroutine; j++ { + for range itemsPerGoroutine { s.Len() // Just read the length } }()