From ee35abb7c7e0ba26d6453fb5e1c3b79e596c9fd0 Mon Sep 17 00:00:00 2001 From: Kieran Bingham Date: Tue, 10 Sep 2019 09:42:28 +0100 Subject: 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 Signed-off-by: Kieran Bingham --- test/process/process_test.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'test/process') 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 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()) -- cgit v1.2.1