summaryrefslogtreecommitdiffstats
path: root/src/corelib/io/qprocess.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/corelib/io/qprocess.h')
-rw-r--r--src/corelib/io/qprocess.h19
1 files changed, 15 insertions, 4 deletions
diff --git a/src/corelib/io/qprocess.h b/src/corelib/io/qprocess.h
index b8923b032d..34724a6794 100644
--- a/src/corelib/io/qprocess.h
+++ b/src/corelib/io/qprocess.h
@@ -5,6 +5,7 @@
#ifndef QPROCESS_H
#define QPROCESS_H
+#include <QtCore/qcompare.h>
#include <QtCore/qiodevice.h>
#include <QtCore/qstringlist.h>
#include <QtCore/qshareddata.h>
@@ -41,9 +42,11 @@ public:
void swap(QProcessEnvironment &other) noexcept { d.swap(other.d); }
+#if QT_CORE_REMOVED_SINCE(6, 8)
bool operator==(const QProcessEnvironment &other) const;
inline bool operator!=(const QProcessEnvironment &other) const
- { return !(*this == other); }
+ { return !operator==(other); }
+#endif
bool isEmpty() const;
[[nodiscard]] bool inheritsFromParent() const;
@@ -63,6 +66,9 @@ public:
static QProcessEnvironment systemEnvironment();
private:
+ friend Q_CORE_EXPORT bool comparesEqual(const QProcessEnvironment &lhs,
+ const QProcessEnvironment &rhs);
+ Q_DECLARE_EQUALITY_COMPARABLE(QProcessEnvironment)
friend class QProcessPrivate;
friend class QProcessEnvironmentPrivate;
QSharedDataPointer<QProcessEnvironmentPrivate> d;
@@ -174,20 +180,25 @@ public:
#if defined(Q_OS_UNIX) || defined(Q_QDOC)
std::function<void(void)> childProcessModifier() const;
void setChildProcessModifier(const std::function<void(void)> &modifier);
+ Q_NORETURN void failChildProcessModifier(const char *description, int error = 0) noexcept;
- enum UnixProcessFlag : quint32 {
+ enum class UnixProcessFlag : quint32 {
ResetSignalHandlers = 0x0001, // like POSIX_SPAWN_SETSIGDEF
IgnoreSigPipe = 0x0002,
// some room if we want to add IgnoreSigHup or so
- CloseNonStandardFileDescriptors = 0x0010,
+ CloseFileDescriptors = 0x0010,
UseVFork = 0x0020, // like POSIX_SPAWN_USEVFORK
+ CreateNewSession = 0x0040, // like POSIX_SPAWN_SETSID
+ DisconnectControllingTerminal = 0x0080,
+ ResetIds = 0x0100, // like POSIX_SPAWN_RESETIDS
};
Q_DECLARE_FLAGS(UnixProcessFlags, UnixProcessFlag)
struct UnixProcessParameters
{
UnixProcessFlags flags = {};
+ int lowestFileDescriptorToClose = 0;
- quint32 _reserved[7] {};
+ quint32 _reserved[6] {};
};
UnixProcessParameters unixProcessParameters() const noexcept;
void setUnixProcessParameters(const UnixProcessParameters &params);