manually quit kauth's mainloop

Summary:
kauth helpers have a qcoreapplication started which auto-terminates after
10 seconds of idle time. this would be an added time out on top of our
life time management that is not necessary. to prevent this additional
delay simply quit the qapplication directly.

this makes helper termination almost instantaneous even when the dbus
client disappears due to crash or SIGINT, and largely removes the
need to call stopHelper altogether.

BUG: 408245

Test Plan:
both partitionmanager and calamares instantly quit the helper no matter how the client process gets terminated

other than that everything seems to work as before

Reviewers: stikonas

Differential Revision: https://phabricator.kde.org/D21559
This commit is contained in:
Harald Sitter 2019-06-03 14:46:18 +02:00 committed by Andrius Štikonas
parent 6a3b1e02b6
commit 9b45e25f81
1 changed files with 6 additions and 0 deletions

View File

@ -20,6 +20,7 @@
#include "externalcommand_whitelist.h"
#include <QtDBus>
#include <QCoreApplication>
#include <QDebug>
#include <QFile>
#include <QString>
@ -82,6 +83,11 @@ ActionReply ExternalCommandHelper::init(const QVariantMap& args)
m_loop->exec();
reply.addData(QStringLiteral("success"), true);
// Also end the application loop started by KAuth's main() code. Our loop
// exits when our client disappears. Without client we have no reason to
// live.
qApp->quit();
return reply;
}