diff --git a/src/kdeinitinterface.cpp b/src/kdeinitinterface.cpp --- a/src/kdeinitinterface.cpp +++ b/src/kdeinitinterface.cpp @@ -34,14 +34,16 @@ void KDEInitInterface::ensureKdeinitRunning() { + const int timeout=5000; // 5 seconds top to get a lock for startkdeinitlock + QDBusConnectionInterface *dbusDaemon = KDBusConnectionPool::threadConnection().interface(); if (dbusDaemon->isServiceRegistered(QStringLiteral("org.kde.klauncher5"))) { return; } qCDebug(KDBUSADDONS_LOG) << "klauncher not running... launching kdeinit"; QLockFile lock(QDir::tempPath() + QLatin1Char('/') + QLatin1String("startkdeinitlock")); - if (!lock.tryLock()) { + if (!lock.tryLock(timeout)) { lock.lock(); if (dbusDaemon->isServiceRegistered(QStringLiteral("org.kde.klauncher5"))) { return; // whoever held the lock has already started it