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
9494
9595 // ask child processes to terminate
9696 foreach(QProcess* childProcess, _childProcesses) {
97− qDebug() << "Attempting to terminate child process" << childProcess->processId();
98− childProcess->terminate();
97+ if (childProcess->processId() > 0) {
98+ qDebug() << "Attempting to terminate child process" << childProcess->processId();
99+ childProcess->terminate();
100+ }
99101 }
100102
101103 simultaneousWaitOnChildren(WAIT_FOR_CHILD_MSECS);
@@ -103,8 +105,10 @@ void AssignmentClientMonitor::stopChildProcesses() { · 1 unmodified line
103105 if (_childProcesses.size() > 0) {
104106 // ask even more firmly
105107 foreach(QProcess* childProcess, _childProcesses) {
106− qDebug() << "Attempting to kill child process" << childProcess->processId();
107− childProcess->kill();
108+ if (childProcess->processId() > 0) {
109+ qDebug() << "Attempting to kill child process" << childProcess->processId();
110+ childProcess->kill();
111+ }
108112 }
109113
110114 simultaneousWaitOnChildren(WAIT_FOR_CHILD_MSECS);
@@ -154,12 +158,14 @@ void AssignmentClientMonitor::spawnChildClient() { · 43 unmodified lines
154158 assignmentClient->setProcessChannelMode(QProcess::ForwardedChannels);
155159
156160 assignmentClient->start(QCoreApplication::applicationFilePath(), _childArguments);
157−
158− // make sure we hear that this process has finished when it does
159− connect(assignmentClient, SIGNAL(finished(int, QProcess::ExitStatus)), this, SLOT(childProcessFinished()));
160−
161− qDebug() << "Spawned a child client with PID" << assignmentClient->pid();
162− _childProcesses.insert(assignmentClient->processId(), assignmentClient);
161+
162+ if (assignmentClient->processId() > 0) {
163+ // make sure we hear that this process has finished when it does
164+ connect(assignmentClient, SIGNAL(finished(int, QProcess::ExitStatus)), this, SLOT(childProcessFinished()));
165+
166+ qDebug() << "Spawned a child client with PID" << assignmentClient->processId();
167+ _childProcesses.insert(assignmentClient->processId(), assignmentClient);
168+ }
163169 }
164170
165171 void 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