History

Merge pull request #5776 from birarda/ac-pid-zero

make sure AC process ID is valid before acting on the process

Seth Alves committed 11 years ago

Commit 0e631472 parents a286f4e d10095e1 file · +16 −10Browse files

Showing the changes to assignment-client/src/AssignmentClientMonitor.cpp (1 of 1 file). Show all

Unified · Split

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

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t