diff options
Diffstat (limited to 'src/pkg/sync/runtime_sema_test.go')
-rw-r--r-- | src/pkg/sync/runtime_sema_test.go | 72 |
1 files changed, 0 insertions, 72 deletions
diff --git a/src/pkg/sync/runtime_sema_test.go b/src/pkg/sync/runtime_sema_test.go deleted file mode 100644 index 5b7dd3df3..000000000 --- a/src/pkg/sync/runtime_sema_test.go +++ /dev/null @@ -1,72 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package sync_test - -import ( - "runtime" - . "sync" - "testing" -) - -func BenchmarkSemaUncontended(b *testing.B) { - type PaddedSem struct { - sem uint32 - pad [32]uint32 - } - b.RunParallel(func(pb *testing.PB) { - sem := new(PaddedSem) - for pb.Next() { - Runtime_Semrelease(&sem.sem) - Runtime_Semacquire(&sem.sem) - } - }) -} - -func benchmarkSema(b *testing.B, block, work bool) { - sem := uint32(0) - if block { - done := make(chan bool) - go func() { - for p := 0; p < runtime.GOMAXPROCS(0)/2; p++ { - Runtime_Semacquire(&sem) - } - done <- true - }() - defer func() { - <-done - }() - } - b.RunParallel(func(pb *testing.PB) { - foo := 0 - for pb.Next() { - Runtime_Semrelease(&sem) - if work { - for i := 0; i < 100; i++ { - foo *= 2 - foo /= 2 - } - } - Runtime_Semacquire(&sem) - } - _ = foo - Runtime_Semrelease(&sem) - }) -} - -func BenchmarkSemaSyntNonblock(b *testing.B) { - benchmarkSema(b, false, false) -} - -func BenchmarkSemaSyntBlock(b *testing.B) { - benchmarkSema(b, true, false) -} - -func BenchmarkSemaWorkNonblock(b *testing.B) { - benchmarkSema(b, false, true) -} - -func BenchmarkSemaWorkBlock(b *testing.B) { - benchmarkSema(b, true, true) -} |