Skip to content

Commit 1f7495e

Browse files
andreas-abelcopybara-github
authored andcommitted
Make keep_running thread-safe
PiperOrigin-RevId: 934411598 Change-Id: I25b77f5b6bbf21583f531d86e20cac0cc4448202
1 parent 0f77dfa commit 1f7495e

1 file changed

Lines changed: 11 additions & 2 deletions

File tree

fleetbench/rpc/rpcperf_benchmark.cc

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,20 +54,29 @@ void BM_Rpc(benchmark::State &state, absl::string_view program) {
5454

5555
absl::Mutex keep_running_mtx;
5656
int warmup = 1000;
57+
bool finished = false;
5758
std::unique_ptr<fleetbench::rpc::GRPCClient> client =
5859
fleetbench::rpc::CreateAndStartClient(
5960
/*max_outstanding_rpcs=*/1, /*compress=*/false,
6061
/*checksum=*/false, /*skip_loopback=*/false,
6162
/*peers=*/peers, /*max_peers=*/-1,
6263
/*connections_per_peer=*/1, /*logstats_output_path=*/"",
6364
/*req_delay_us_dist=*/"", /*program=*/program,
64-
/*keep_running=*/[&state, &keep_running_mtx, &warmup]() {
65+
/*keep_running=*/
66+
[&state, &keep_running_mtx, &warmup, &finished]() {
6567
absl::MutexLock l(keep_running_mtx);
68+
if (finished) {
69+
return false;
70+
}
6671
if (warmup > 0) {
6772
--warmup;
6873
return true;
6974
}
70-
return state.KeepRunning();
75+
if (!state.KeepRunning()) {
76+
finished = true;
77+
return false;
78+
}
79+
return true;
7180
});
7281

7382
fleetbench::rpc::Wait(std::move(server), std::move(client));

0 commit comments

Comments
 (0)