|
|
|
@ -348,23 +348,11 @@ std::unique_ptr<ScenarioResult> RunScenario( |
|
|
|
|
std::unique_ptr<ScenarioResult> result(new ScenarioResult); |
|
|
|
|
result->client_config = result_client_config; |
|
|
|
|
result->server_config = result_server_config; |
|
|
|
|
gpr_log(GPR_INFO, "Finishing"); |
|
|
|
|
for (auto server = &servers[0]; server != &servers[num_servers]; server++) { |
|
|
|
|
GPR_ASSERT(server->stream->Write(server_mark)); |
|
|
|
|
GPR_ASSERT(server->stream->WritesDone()); |
|
|
|
|
} |
|
|
|
|
gpr_log(GPR_INFO, "Finishing clients"); |
|
|
|
|
for (auto client = &clients[0]; client != &clients[num_clients]; client++) { |
|
|
|
|
GPR_ASSERT(client->stream->Write(client_mark)); |
|
|
|
|
GPR_ASSERT(client->stream->WritesDone()); |
|
|
|
|
} |
|
|
|
|
for (auto server = &servers[0]; server != &servers[num_servers]; server++) { |
|
|
|
|
GPR_ASSERT(server->stream->Read(&server_status)); |
|
|
|
|
const auto& stats = server_status.stats(); |
|
|
|
|
result->server_resources.emplace_back( |
|
|
|
|
stats.time_elapsed(), stats.time_user(), stats.time_system(), |
|
|
|
|
server_status.cores()); |
|
|
|
|
GPR_ASSERT(!server->stream->Read(&server_status)); |
|
|
|
|
} |
|
|
|
|
for (auto client = &clients[0]; client != &clients[num_clients]; client++) { |
|
|
|
|
GPR_ASSERT(client->stream->Read(&client_status)); |
|
|
|
|
const auto& stats = client_status.stats(); |
|
|
|
@ -373,14 +361,28 @@ std::unique_ptr<ScenarioResult> RunScenario( |
|
|
|
|
stats.time_elapsed(), stats.time_user(), stats.time_system(), -1); |
|
|
|
|
GPR_ASSERT(!client->stream->Read(&client_status)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
for (auto client = &clients[0]; client != &clients[num_clients]; client++) { |
|
|
|
|
GPR_ASSERT(client->stream->Finish().ok()); |
|
|
|
|
} |
|
|
|
|
delete[] clients; |
|
|
|
|
|
|
|
|
|
gpr_log(GPR_INFO, "Finishing servers"); |
|
|
|
|
for (auto server = &servers[0]; server != &servers[num_servers]; server++) { |
|
|
|
|
GPR_ASSERT(server->stream->Write(server_mark)); |
|
|
|
|
GPR_ASSERT(server->stream->WritesDone()); |
|
|
|
|
} |
|
|
|
|
for (auto server = &servers[0]; server != &servers[num_servers]; server++) { |
|
|
|
|
GPR_ASSERT(server->stream->Read(&server_status)); |
|
|
|
|
const auto& stats = server_status.stats(); |
|
|
|
|
result->server_resources.emplace_back( |
|
|
|
|
stats.time_elapsed(), stats.time_user(), stats.time_system(), |
|
|
|
|
server_status.cores()); |
|
|
|
|
GPR_ASSERT(!server->stream->Read(&server_status)); |
|
|
|
|
} |
|
|
|
|
for (auto server = &servers[0]; server != &servers[num_servers]; server++) { |
|
|
|
|
GPR_ASSERT(server->stream->Finish().ok()); |
|
|
|
|
} |
|
|
|
|
delete[] clients; |
|
|
|
|
|
|
|
|
|
delete[] servers; |
|
|
|
|
return result; |
|
|
|
|
} |
|
|
|
|