Avoid doing kill(-1) in QProcess destructor
It can happen under unspecified conditions, see relevant ticket. Task-number: QTBUG-86285 Pick-to: 5.15 Change-Id: I1f77bf0061a0faaa60283bb93fc3d82031247d54 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This commit is contained in:
parent
4d269b4561
commit
743ffcbc82
@ -504,6 +504,7 @@ void QProcessPrivate::startProcess()
|
|||||||
}
|
}
|
||||||
|
|
||||||
pid = qint64(childPid);
|
pid = qint64(childPid);
|
||||||
|
Q_ASSERT(pid > 0);
|
||||||
|
|
||||||
// parent
|
// parent
|
||||||
// close the ends we don't use and make all pipes non-blocking
|
// close the ends we don't use and make all pipes non-blocking
|
||||||
@ -691,18 +692,18 @@ bool QProcessPrivate::writeToStdin()
|
|||||||
void QProcessPrivate::terminateProcess()
|
void QProcessPrivate::terminateProcess()
|
||||||
{
|
{
|
||||||
#if defined (QPROCESS_DEBUG)
|
#if defined (QPROCESS_DEBUG)
|
||||||
qDebug("QProcessPrivate::terminateProcess()");
|
qDebug("QProcessPrivate::terminateProcess() pid=%jd", intmax_t(pid));
|
||||||
#endif
|
#endif
|
||||||
if (pid)
|
if (pid > 0)
|
||||||
::kill(pid_t(pid), SIGTERM);
|
::kill(pid_t(pid), SIGTERM);
|
||||||
}
|
}
|
||||||
|
|
||||||
void QProcessPrivate::killProcess()
|
void QProcessPrivate::killProcess()
|
||||||
{
|
{
|
||||||
#if defined (QPROCESS_DEBUG)
|
#if defined (QPROCESS_DEBUG)
|
||||||
qDebug("QProcessPrivate::killProcess()");
|
qDebug("QProcessPrivate::killProcess() pid=%jd", intmax_t(pid));
|
||||||
#endif
|
#endif
|
||||||
if (pid)
|
if (pid > 0)
|
||||||
::kill(pid_t(pid), SIGKILL);
|
::kill(pid_t(pid), SIGKILL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user