aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs/utils/processutils.h
diff options
context:
space:
mode:
authorJarek Kobus <jaroslaw.kobus@qt.io>2022-03-14 17:02:11 +0100
committerJarek Kobus <jaroslaw.kobus@qt.io>2022-03-31 12:48:42 +0000
commitb76b8b1542ac31ea6336cb1b23c2552e35a74a62 (patch)
treefdf32902dd964a5b882be748a8654e9910de3fe3 /src/libs/utils/processutils.h
parentde1bef18e21187f326da4e807b5e9a6fe149495c (diff)
ProcessReaper: Implement custom terminate for CtrlCStub case
Move CtrlCStub-specific interrupt into ProcessHelper. Amends 7d7e4af3afb5ba9d0ed5210018dd6be67abda469 Change-Id: I5cd9a750c4a89587a874515f752b0144df4b8309 Reviewed-by: hjk <hjk@qt.io>
Diffstat (limited to 'src/libs/utils/processutils.h')
-rw-r--r--src/libs/utils/processutils.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/libs/utils/processutils.h b/src/libs/utils/processutils.h
index 90405704e1..a9ae590ed2 100644
--- a/src/libs/utils/processutils.h
+++ b/src/libs/utils/processutils.h
@@ -26,6 +26,7 @@
#pragma once
#include "processenums.h"
+#include "processreaper.h"
#include <QIODevice>
#include <QProcess>
@@ -52,6 +53,8 @@ private:
class ProcessHelper : public QProcess
{
+ Q_OBJECT
+
public:
ProcessHelper(QObject *parent) : QProcess(parent), m_processStartHandler(this)
{
@@ -70,11 +73,19 @@ public:
void setLowPriority() { m_lowPriority = true; }
void setUnixTerminalDisabled() { m_unixTerminalDisabled = true; }
+ void setUseCtrlCStub(bool enabled); // release only
+
+ static void terminateProcess(QProcess *process);
+ static void interruptProcess(QProcess *process);
+ static void interruptPid(qint64 pid);
private:
+ void terminateProcess();
void setupChildProcess_impl();
+
bool m_lowPriority = false;
bool m_unixTerminalDisabled = false;
+ bool m_useCtrlCStub = false; // release only
ProcessStartHandler m_processStartHandler;
};