diff options
author | Andrew Christian <andrew.christian@nokia.com> | 2012-02-28 15:03:12 +0100 |
---|---|---|
committer | Chris Craig <ext-chris.craig@nokia.com> | 2012-02-28 18:26:22 +0100 |
commit | b7abaf043c510456f0a20013db9c38fbcd822ddc (patch) | |
tree | cab342368eb2edf80c6055d207ec68092503fa7d /src/core/unixprocessbackend.cpp | |
parent | d996e4d26539a0a80a63d03fc75ea37d916733d2 (diff) |
Move process group killing to common location
Change-Id: Icff9cd4073684ba7cc314b69b3efc6c0bf7cff99
Reviewed-by: Chris Craig <ext-chris.craig@nokia.com>
Diffstat (limited to 'src/core/unixprocessbackend.cpp')
-rw-r--r-- | src/core/unixprocessbackend.cpp | 18 |
1 files changed, 3 insertions, 15 deletions
diff --git a/src/core/unixprocessbackend.cpp b/src/core/unixprocessbackend.cpp index ff33c34..76bd063 100644 --- a/src/core/unixprocessbackend.cpp +++ b/src/core/unixprocessbackend.cpp @@ -37,8 +37,6 @@ ** ****************************************************************************/ - - #include "unixprocessbackend.h" #include "unixsandboxprocess.h" #include "procutils.h" @@ -50,16 +48,6 @@ QT_BEGIN_NAMESPACE_PROCESSMANAGER -static void sendSignalToProcess(pid_t pid, int sig) -{ - pid_t pgrp = ::getpgid(pid); - if (pgrp != -1 && pgrp != ::getpgrp() && ::killpg(pgrp, sig) == 0) - return; - - qWarning("Unable terminate process group: %d, directly killing process %d", pgrp, pid); - ::kill(pid, sig); -} - /*! \class UnixProcessBackend \brief The UnixProcessBackend class wraps a QProcess object @@ -84,7 +72,7 @@ UnixProcessBackend::UnixProcessBackend(const ProcessInfo& info, QObject *parent) UnixProcessBackend::~UnixProcessBackend() { if (m_process && m_process->state() != QProcess::NotRunning) - sendSignalToProcess(m_process->pid(), SIGKILL); + ProcUtils::sendSignalToProcess(m_process->pid(), SIGKILL); } /*! @@ -235,11 +223,11 @@ void UnixProcessBackend::stop(int timeout) if (m_process->state() != QProcess::NotRunning) { if (timeout > 0) { - sendSignalToProcess(m_process->pid(), SIGTERM); + ProcUtils::sendSignalToProcess(m_process->pid(), SIGTERM); m_killTimer.start(timeout); } else { - sendSignalToProcess(m_process->pid(), SIGKILL); + ProcUtils::sendSignalToProcess(m_process->pid(), SIGKILL); } } } |