Skip to content
Snippets Groups Projects
Commit d6936b6b authored by David Garcia Quintas's avatar David Garcia Quintas
Browse files

PR comments

parent a05909fa
No related branches found
No related tags found
No related merge requests found
...@@ -47,8 +47,9 @@ ...@@ -47,8 +47,9 @@
using grpc::SubProcess; using grpc::SubProcess;
typedef std::unique_ptr<SubProcess> SubProcessPtr; typedef std::unique_ptr<SubProcess> SubProcessPtr;
std::vector<SubProcessPtr> g_workers;
SubProcessPtr g_driver; SubProcessPtr g_driver;
constexpr auto kNumWorkers = 2;
std::vector<SubProcessPtr> g_workers(2);
template <class T> template <class T>
std::string as_string(const T& val) { std::string as_string(const T& val) {
...@@ -58,10 +59,11 @@ std::string as_string(const T& val) { ...@@ -58,10 +59,11 @@ std::string as_string(const T& val) {
} }
static void sighandler(int sig) { static void sighandler(int sig) {
const int errno_saved = errno;
g_driver->Interrupt(); g_driver->Interrupt();
for (auto it = g_workers.begin(); it != g_workers.end(); ++it) { for (const auto& worker : g_workers)
(*it)->Interrupt(); if (worker) worker->Interrupt();
} errno = errno_saved;
} }
static void register_sighandler() { static void register_sighandler() {
...@@ -82,11 +84,11 @@ int main(int argc, char** argv) { ...@@ -82,11 +84,11 @@ int main(int argc, char** argv) {
std::ostringstream env; std::ostringstream env;
bool first = true; bool first = true;
for (int i = 0; i < 2; i++) { for (int i = 0; i < kNumWorkers; i++) {
auto port = grpc_pick_unused_port_or_die(); const auto port = grpc_pick_unused_port_or_die();
std::vector<std::string> args = {bin_dir + "/qps_worker", "-driver_port", std::vector<std::string> args = {bin_dir + "/qps_worker", "-driver_port",
as_string(port)}; as_string(port)};
g_workers.emplace_back(new SubProcess(args)); g_workers[i].reset(new SubProcess(args));
if (!first) env << ","; if (!first) env << ",";
env << "localhost:" << port; env << "localhost:" << port;
first = false; first = false;
...@@ -100,11 +102,9 @@ int main(int argc, char** argv) { ...@@ -100,11 +102,9 @@ int main(int argc, char** argv) {
g_driver.reset(new SubProcess(args)); g_driver.reset(new SubProcess(args));
const int driver_join_status = g_driver->Join(); const int driver_join_status = g_driver->Join();
for (auto it = g_workers.begin(); it != g_workers.end(); ++it) { for (const auto& worker : g_workers)
(*it)->Interrupt(); if (worker) worker->Interrupt();
} for (const auto& worker : g_workers)
for (auto it = g_workers.begin(); it != g_workers.end(); ++it) { if (worker) worker->Join();
(*it)->Join();
}
GPR_ASSERT(driver_join_status == 0); GPR_ASSERT(driver_join_status == 0);
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment