summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKieran Bingham <kieran.bingham@ideasonboard.com>2019-09-10 09:42:28 +0100
committerKieran Bingham <kieran.bingham@ideasonboard.com>2019-09-13 09:21:37 +0100
commitee35abb7c7e0ba26d6453fb5e1c3b79e596c9fd0 (patch)
treeb29b4b5c338abd802e868ba40d38e6f6d874f06c
parent5d05418d9b53e1838692f687a6dc373dad45355c (diff)
test: process: Connect signal before launching process
The procFinished event handler is registered after the process is started. This doesn't actually create any race, as the finished signal is emitted after a SIGCHLD is caught and handled through the ProcessManager and processed by the event loop. However, to follow the best practice that resources should be acquired before performing an action, connect the finished signal before starting the process. Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
-rw-r--r--test/process/process_test.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/test/process/process_test.cpp b/test/process/process_test.cpp
index d264555e..701f156b 100644
--- a/test/process/process_test.cpp
+++ b/test/process/process_test.cpp
@@ -47,12 +47,13 @@ protected:
int exitCode = 42;
vector<std::string> args;
args.push_back(to_string(exitCode));
+ proc_.finished.connect(this, &ProcessTest::procFinished);
+
int ret = proc_.start("/proc/self/exe", args);
if (ret) {
cerr << "failed to start process" << endl;
return TestFail;
}
- proc_.finished.connect(this, &ProcessTest::procFinished);
timeout.start(100);
while (timeout.isRunning())