Akonadi
processcontrol.cpp
50 void ProcessControl::start(const QString &application, const QStringList &arguments, CrashPolicy policy)
89 qCWarning(AKONADICONTROL_LOG) << "ProcessControl: Application" << mApplication << "stopped unexpectedly (" << mProcess.errorString() << ")";
98 qCWarning(AKONADICONTROL_LOG, "Application '%s' crashed! %d restarts left.", qPrintable(mApplication), s_maxCrashCount - mCrashCount);
105 qCCritical(AKONADICONTROL_LOG, "Application '%s' crashed too often. Giving up!", qPrintable(mApplication));
112 qCCritical(AKONADICONTROL_LOG, "Application '%s' crashed. No restart!", qPrintable(mApplication));
123 qCCritical(AKONADICONTROL_LOG) << mApplication << "crashed too often and will not be restarted!";
165 if (!agentValgrind.isEmpty() && (mApplication.contains(agentValgrind) || listContains(mArguments, agentValgrind))) {
170 const QString valgrindSkin = akGetEnv("AKONADI_VALGRIND_SKIN", QString::fromLocal8Bit("memcheck"));
185 qCDebug(AKONADICONTROL_LOG) << "ProcessControl: Additional Valgrind options:" << valgrindOptions;
192 if (!agentHeaptrack.isEmpty() && (mApplication.contains(agentHeaptrack) || listContains(mArguments, agentHeaptrack))) {
205 if (!agentPerf.isEmpty() && (mApplication.contains(agentPerf) || listContains(mArguments, agentPerf))) {
210 mArguments = QStringList{QStringLiteral("record"), QStringLiteral("--call-graph"), QStringLiteral("dwarf"), QStringLiteral("--")} + mArguments;
222 qCWarning(AKONADICONTROL_LOG, "ProcessControl: Unable to start application '%s' (%s)", qPrintable(mApplication), qPrintable(mProcess.errorString()));
void start(const QString &program, const QStringList &arguments, QIODevice::OpenMode mode)
QProcess::ProcessState state() const const
QString errorString() const const
void start()
Starts the process with the previously set application and arguments.
Definition: processcontrol.cpp:158
bool waitForFinished(int msecs)
NotRunning
Q_EMITQ_EMIT
void setProcessEnvironment(const QProcessEnvironment &environment)
singleShot
QStringList split(const QString &sep, QString::SplitBehavior behavior, Qt::CaseSensitivity cs) const const
void terminate()
QProcessEnvironment systemEnvironment()
ProcessError
CrashPolicy
These enums describe the behaviour when the observed application crashed.
Definition: processcontrol.h:40
ProcessControl(QObject *parent=nullptr)
Creates a new process control.
Definition: processcontrol.cpp:27
void unableToStart()
Emitted if the process could not be started since it terminated too often.
void finished(int exitCode)
void setShutdownTimeout(std::chrono::milliseconds timeout)
Sets the time (in msecs) we wait for the process to shut down before we send terminate/kill signals.
Definition: processcontrol.cpp:258
QMetaObject::Connection connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
bool isRunning() const
Returns true if the process is currently running.
Definition: processcontrol.cpp:253
void setProcessChannelMode(QProcess::ProcessChannelMode mode)
void prepend(const T &value)
QString fromLocal8Bit(const char *str, int size)
ExitStatus
SkipEmptyParts
QProcessEnvironment processEnvironment() const const
bool isEmpty() const const
bool waitForStarted(int msecs)
void kill()
void insert(const QString &name, const QString &value)
QString join(const QString &separator) const const
bool isEmpty() const const
bool contains(QChar ch, Qt::CaseSensitivity cs) const const
void errorOccurred(QProcess::ProcessError error)
void restarted()
This signal is emitted when the server is restarted after a crash.
qint64 processId() const const
Helper integration between Akonadi and Qt.
ForwardedChannels
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Mon May 8 2023 03:52:16 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006
Documentation copyright © 1996-2023 The KDE developers.
Generated on Mon May 8 2023 03:52:16 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.