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