Fix starter_test under msan
We were running a std::function that was getting deleted while being
run. Convert that over to a reference to prevent the use after free.
Change-Id: Ie646443542e384af841292394397866627d7bf2a
Signed-off-by: James Kuszmaul <james.kuszmaul@bluerivertech.com>
diff --git a/aos/starter/starter_test.cc b/aos/starter/starter_test.cc
index d26f414..5888233 100644
--- a/aos/starter/starter_test.cc
+++ b/aos/starter/starter_test.cc
@@ -535,7 +535,7 @@
LOG(INFO) << "Waiting for starter to close.";
std::this_thread::sleep_for(std::chrono::seconds(1));
}
- client.SetTimeoutHandler(stage3);
+ client.SetTimeoutHandler(std::ref(stage3));
client.SetSuccessHandler([]() {
LOG(INFO) << "stage3 success handler called.";
FAIL() << ": Command should not have succeeded here.";
@@ -549,7 +549,7 @@
LOG(INFO) << "Begin stage1";
client.SetTimeoutHandler(
[]() { FAIL() << ": Command should not have timed out."; });
- client.SetSuccessHandler(stage2);
+ client.SetSuccessHandler(std::ref(stage2));
client.SendCommands({{Command::STOP, "ping", {client_node}}},
std::chrono::seconds(5));
LOG(INFO) << "End stage1";