diff options
Diffstat (limited to 'tests/benchmarks/read-var-mutex')
l--------- | tests/benchmarks/read-var-mutex/main.go | 1 | ||||
-rw-r--r-- | tests/benchmarks/read-var-mutex/stm.go | 35 |
2 files changed, 36 insertions, 0 deletions
diff --git a/tests/benchmarks/read-var-mutex/main.go b/tests/benchmarks/read-var-mutex/main.go new file mode 120000 index 0000000..f67563d --- /dev/null +++ b/tests/benchmarks/read-var-mutex/main.go @@ -0,0 +1 @@ +../../main.go
\ No newline at end of file diff --git a/tests/benchmarks/read-var-mutex/stm.go b/tests/benchmarks/read-var-mutex/stm.go new file mode 100644 index 0000000..12dbf7e --- /dev/null +++ b/tests/benchmarks/read-var-mutex/stm.go @@ -0,0 +1,35 @@ +package stm + +import ( + "flag" + "sync" +) + + + +var nFlag = flag.Int( + "n", + 1_000, + "The number of iterations to execute", +) + +func MainTest() { + flag.Parse() + n := *nFlag + + for i := 0; i < n; i++ { + var mu sync.Mutex + var wg sync.WaitGroup + wg.Add(1000) + v := 0 + for i := 0; i < 1000; i++ { + go func() { + mu.Lock() + defer mu.Unlock() + _ = v + wg.Done() + }() + } + wg.Wait() + } +} |