From 4eac60b463a9645f606015263599e79aa2593814 Mon Sep 17 00:00:00 2001 From: Seth Alves Date: Fri, 1 May 2015 16:34:44 -0700 Subject: [PATCH 1/3] try harder to make sure all the assignment-client children stop --- .../src/AssignmentClientMonitor.cpp | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/assignment-client/src/AssignmentClientMonitor.cpp b/assignment-client/src/AssignmentClientMonitor.cpp index df77e33ef0..7392a47160 100644 --- a/assignment-client/src/AssignmentClientMonitor.cpp +++ b/assignment-client/src/AssignmentClientMonitor.cpp @@ -91,7 +91,26 @@ void AssignmentClientMonitor::stopChildProcesses() { }); // try to give all the children time to shutdown - waitOnChildren(15000); + waitOnChildren(200); + + // ask more firmly + QMutableListIterator i(_childProcesses); + while (i.hasNext()) { + QProcess* childProcess = i.next(); + childProcess->kill(); + } + + // try to give all the children time to shutdown + waitOnChildren(200); + + // ask even more firmly + QMutableListIterator j(_childProcesses); + while (j.hasNext()) { + QProcess* childProcess = j.next(); + childProcess->terminate(); + } + + waitOnChildren(200); } void AssignmentClientMonitor::aboutToQuit() { From 23c44500d8f338ffaea00658146dc8e17b5be9e9 Mon Sep 17 00:00:00 2001 From: Seth Alves Date: Fri, 1 May 2015 16:45:04 -0700 Subject: [PATCH 2/3] no magic numbers --- assignment-client/src/AssignmentClientMonitor.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/assignment-client/src/AssignmentClientMonitor.cpp b/assignment-client/src/AssignmentClientMonitor.cpp index 7392a47160..873a79a414 100644 --- a/assignment-client/src/AssignmentClientMonitor.cpp +++ b/assignment-client/src/AssignmentClientMonitor.cpp @@ -22,6 +22,7 @@ const QString ASSIGNMENT_CLIENT_MONITOR_TARGET_NAME = "assignment-client-monitor"; +const int WAIT_FOR_CHILD_MSECS = 500; AssignmentClientMonitor::AssignmentClientMonitor(const unsigned int numAssignmentClientForks, const unsigned int minAssignmentClientForks, @@ -91,7 +92,7 @@ void AssignmentClientMonitor::stopChildProcesses() { }); // try to give all the children time to shutdown - waitOnChildren(200); + waitOnChildren(WAIT_FOR_CHILD_MSECS); // ask more firmly QMutableListIterator i(_childProcesses); @@ -101,7 +102,7 @@ void AssignmentClientMonitor::stopChildProcesses() { } // try to give all the children time to shutdown - waitOnChildren(200); + waitOnChildren(WAIT_FOR_CHILD_MSECS); // ask even more firmly QMutableListIterator j(_childProcesses); @@ -110,7 +111,7 @@ void AssignmentClientMonitor::stopChildProcesses() { childProcess->terminate(); } - waitOnChildren(200); + waitOnChildren(WAIT_FOR_CHILD_MSECS); } void AssignmentClientMonitor::aboutToQuit() { From 9f1cb2a4e54a17c8a8eb9e600495f220bc444c66 Mon Sep 17 00:00:00 2001 From: Seth Alves Date: Fri, 1 May 2015 16:56:39 -0700 Subject: [PATCH 3/3] fix kill/terminate order --- assignment-client/src/AssignmentClientMonitor.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/assignment-client/src/AssignmentClientMonitor.cpp b/assignment-client/src/AssignmentClientMonitor.cpp index 873a79a414..6414f33644 100644 --- a/assignment-client/src/AssignmentClientMonitor.cpp +++ b/assignment-client/src/AssignmentClientMonitor.cpp @@ -98,7 +98,7 @@ void AssignmentClientMonitor::stopChildProcesses() { QMutableListIterator i(_childProcesses); while (i.hasNext()) { QProcess* childProcess = i.next(); - childProcess->kill(); + childProcess->terminate(); } // try to give all the children time to shutdown @@ -108,7 +108,7 @@ void AssignmentClientMonitor::stopChildProcesses() { QMutableListIterator j(_childProcesses); while (j.hasNext()) { QProcess* childProcess = j.next(); - childProcess->terminate(); + childProcess->kill(); } waitOnChildren(WAIT_FOR_CHILD_MSECS);