diff options
Diffstat (limited to 'src/corelib/io/qprocess.h')
-rw-r--r-- | src/corelib/io/qprocess.h | 19 |
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 ¶ms); |