From 388da4269c1a1dbfd5e550231a71f063c76215bd Mon Sep 17 00:00:00 2001 From: Alexander Polcyn Date: Tue, 27 Sep 2016 15:55:25 -0700 Subject: [PATCH] remove inner goroutines around individual sends and receives in benchmark client streams --- benchmark/worker/benchmark_client.go | 25 +++++++------------------ 1 file changed, 7 insertions(+), 18 deletions(-) diff --git a/benchmark/worker/benchmark_client.go b/benchmark/worker/benchmark_client.go index 77e522f2..199bbe1f 100644 --- a/benchmark/worker/benchmark_client.go +++ b/benchmark/worker/benchmark_client.go @@ -317,28 +317,17 @@ func (bc *benchmarkClient) doCloseLoopStreaming(conns []*grpc.ClientConn, rpcCou // Now relying on worker client to reserve time to do warm up. // The worker client needs to wait for some time after client is created, // before starting benchmark. - done := make(chan bool) for { - go func() { - start := time.Now() - if err := doRPC(stream, reqSize, respSize); err != nil { - select { - case <-bc.stop: - case done <- false: - } - return - } - elapse := time.Since(start) - bc.lockingHistograms[idx].add(int64(elapse)) - select { - case <-bc.stop: - case done <- true: - } - }() + start := time.Now() + if err := doRPC(stream, reqSize, respSize); err != nil { + return + } + elapse := time.Since(start) + bc.lockingHistograms[idx].add(int64(elapse)) select { case <-bc.stop: return - case <-done: + default: } } }(idx)