Showing the changes to assignment-client/src/AssignmentClientMonitor.cpp (1 of 1 file). Show all
Unified · Split
| @@ -95,8 +95,10 @@ void AssignmentClientMonitor::stopChildProcesses() { · 94 unmodified lines | ||
| 95 | 95 | |
| 96 | 96 | // ask child processes to terminate |
| 97 | 97 | foreach(QProcess* childProcess, _childProcesses) { |
| 98 | − qDebug() << "Attempting to terminate child process" << childProcess->processId(); | |
| 99 | − childProcess->terminate(); | |
| 98 | + if (childProcess->processId() > 0) { | |
| 99 | + qDebug() << "Attempting to terminate child process" << childProcess->processId(); | |
| 100 | + childProcess->terminate(); | |
| 101 | + } | |
| 100 | 102 | } |
| 101 | 103 | |
| 102 | 104 | simultaneousWaitOnChildren(WAIT_FOR_CHILD_MSECS); |
| @@ -104,8 +106,10 @@ void AssignmentClientMonitor::stopChildProcesses() { · 1 unmodified line | ||
| 104 | 106 | if (_childProcesses.size() > 0) { |
| 105 | 107 | // ask even more firmly |
| 106 | 108 | foreach(QProcess* childProcess, _childProcesses) { |
| 107 | − qDebug() << "Attempting to kill child process" << childProcess->processId(); | |
| 108 | − childProcess->kill(); | |
| 109 | + if (childProcess->processId() > 0) { | |
| 110 | + qDebug() << "Attempting to kill child process" << childProcess->processId(); | |
| 111 | + childProcess->kill(); | |
| 112 | + } | |
| 109 | 113 | } |
| 110 | 114 | |
| 111 | 115 | simultaneousWaitOnChildren(WAIT_FOR_CHILD_MSECS); |
| @@ -155,12 +159,14 @@ void AssignmentClientMonitor::spawnChildClient() { · 43 unmodified lines | ||
| 155 | 159 | assignmentClient->setProcessChannelMode(QProcess::ForwardedChannels); |
| 156 | 160 | |
| 157 | 161 | assignmentClient->start(QCoreApplication::applicationFilePath(), _childArguments); |
| 158 | − | |
| 159 | − // make sure we hear that this process has finished when it does | |
| 160 | − connect(assignmentClient, SIGNAL(finished(int, QProcess::ExitStatus)), this, SLOT(childProcessFinished())); | |
| 161 | − | |
| 162 | − qDebug() << "Spawned a child client with PID" << assignmentClient->pid(); | |
| 163 | − _childProcesses.insert(assignmentClient->processId(), assignmentClient); | |
| 162 | + | |
| 163 | + if (assignmentClient->processId() > 0) { | |
| 164 | + // make sure we hear that this process has finished when it does | |
| 165 | + connect(assignmentClient, SIGNAL(finished(int, QProcess::ExitStatus)), this, SLOT(childProcessFinished())); | |
| 166 | + | |
| 167 | + qDebug() << "Spawned a child client with PID" << assignmentClient->processId(); | |
| 168 | + _childProcesses.insert(assignmentClient->processId(), assignmentClient); | |
| 169 | + } | |
| 164 | 170 | } |
| 165 | 171 | |
| 166 | 172 | void AssignmentClientMonitor::checkSpares() { |