From: Russ Cox Date: Wed, 29 Nov 2017 21:31:47 +0000 (-0500) Subject: testing: remove claim that b.Run is safe for concurrent use X-Git-Tag: go1.10beta1~79 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=f3b24b9f0766351fc8b3d43c4ea03f948a460e75;p=gostls13.git testing: remove claim that b.Run is safe for concurrent use It's not safe (it crashes), and it's also useless: if you run multiple benchmarks in parallel you will not get reliable timing results from any of them. Fixes #18603. Change-Id: I00e5a72f7c98151543cf7d5573c38383276e391a Reviewed-on: https://go-review.googlesource.com/80841 Reviewed-by: Ian Lance Taylor --- diff --git a/src/testing/benchmark.go b/src/testing/benchmark.go index 2d0de180d7..4d569b7971 100644 --- a/src/testing/benchmark.go +++ b/src/testing/benchmark.go @@ -475,9 +475,6 @@ func (ctx *benchContext) processBench(b *B) { // // A subbenchmark is like any other benchmark. A benchmark that calls Run at // least once will not be measured itself and will be called once with N=1. -// -// Run may be called simultaneously from multiple goroutines, but all such -// calls must return before the outer benchmark function for b returns. func (b *B) Run(name string, f func(b *B)) bool { // Since b has subbenchmarks, we will no longer run it as a benchmark itself. // Release the lock and acquire it on exit to ensure locks stay paired.