|
|
|
@ -366,12 +366,37 @@ std::unique_ptr<ScenarioResult> RunScenario( |
|
|
|
|
if (!clients[i].stream->Write(args)) { |
|
|
|
|
gpr_log(GPR_ERROR, "Could not write args to client %zu", i); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
for (size_t i = 0; i < num_clients; i++) { |
|
|
|
|
ClientStatus init_status; |
|
|
|
|
if (!clients[i].stream->Read(&init_status)) { |
|
|
|
|
gpr_log(GPR_ERROR, "Client %zu did not yield initial status", i); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Send an initial mark: clients can use this to know that everything is ready
|
|
|
|
|
// to start
|
|
|
|
|
gpr_log(GPR_INFO, "Initiating"); |
|
|
|
|
ServerArgs server_mark; |
|
|
|
|
server_mark.mutable_mark()->set_reset(true); |
|
|
|
|
ClientArgs client_mark; |
|
|
|
|
client_mark.mutable_mark()->set_reset(true); |
|
|
|
|
ServerStatus server_status; |
|
|
|
|
ClientStatus client_status; |
|
|
|
|
for (size_t i = 0; i < num_clients; i++) { |
|
|
|
|
auto client = &clients[i]; |
|
|
|
|
if (!client->stream->Write(client_mark)) { |
|
|
|
|
gpr_log(GPR_ERROR, "Couldn't write mark to client %zu", i); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
for (size_t i = 0; i < num_clients; i++) { |
|
|
|
|
auto client = &clients[i]; |
|
|
|
|
if (!client->stream->Read(&client_status)) { |
|
|
|
|
gpr_log(GPR_ERROR, "Couldn't get status from client %zu", i); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Let everything warmup
|
|
|
|
|
gpr_log(GPR_INFO, "Warming up"); |
|
|
|
|
gpr_timespec start = gpr_now(GPR_CLOCK_REALTIME); |
|
|
|
@ -380,10 +405,6 @@ std::unique_ptr<ScenarioResult> RunScenario( |
|
|
|
|
|
|
|
|
|
// Start a run
|
|
|
|
|
gpr_log(GPR_INFO, "Starting"); |
|
|
|
|
ServerArgs server_mark; |
|
|
|
|
server_mark.mutable_mark()->set_reset(true); |
|
|
|
|
ClientArgs client_mark; |
|
|
|
|
client_mark.mutable_mark()->set_reset(true); |
|
|
|
|
for (size_t i = 0; i < num_servers; i++) { |
|
|
|
|
auto server = &servers[i]; |
|
|
|
|
if (!server->stream->Write(server_mark)) { |
|
|
|
@ -396,8 +417,6 @@ std::unique_ptr<ScenarioResult> RunScenario( |
|
|
|
|
gpr_log(GPR_ERROR, "Couldn't write mark to client %zu", i); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
ServerStatus server_status; |
|
|
|
|
ClientStatus client_status; |
|
|
|
|
for (size_t i = 0; i < num_servers; i++) { |
|
|
|
|
auto server = &servers[i]; |
|
|
|
|
if (!server->stream->Read(&server_status)) { |
|
|
|
|