diff options
author | Kieran Bingham <kieran.bingham@ideasonboard.com> | 2019-09-10 09:42:28 +0100 |
---|---|---|
committer | Kieran Bingham <kieran.bingham@ideasonboard.com> | 2019-09-13 09:21:37 +0100 |
commit | ee35abb7c7e0ba26d6453fb5e1c3b79e596c9fd0 (patch) | |
tree | b29b4b5c338abd802e868ba40d38e6f6d874f06c /test/process | |
parent | 5d05418d9b53e1838692f687a6dc373dad45355c (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>
Diffstat (limited to 'test/process')
-rw-r--r-- | test/process/process_test.cpp | 3 |
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()) |