summaryrefslogtreecommitdiffstats
path: root/src/libs/installer/fsengineclient.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs/installer/fsengineclient.cpp')
-rw-r--r--src/libs/installer/fsengineclient.cpp34
1 files changed, 21 insertions, 13 deletions
diff --git a/src/libs/installer/fsengineclient.cpp b/src/libs/installer/fsengineclient.cpp
index c9aff560f..abc686fd9 100644
--- a/src/libs/installer/fsengineclient.cpp
+++ b/src/libs/installer/fsengineclient.cpp
@@ -44,6 +44,8 @@
#include "adminauthorization.h"
#include "messageboxhandler.h"
+#include <QElapsedTimer>
+
#include <QtCore/QCoreApplication>
#include <QtCore/QMutex>
#include <QtCore/QProcess>
@@ -169,9 +171,9 @@ class FSEngineClientIterator : public QAbstractFileEngineIterator
{
public:
FSEngineClientIterator(QDir::Filters filters, const QStringList &nameFilters, const QStringList &files)
- : QAbstractFileEngineIterator(filters, nameFilters),
- entries(files),
- index(-1)
+ : QAbstractFileEngineIterator(filters, nameFilters)
+ , entries(files)
+ , index(-1)
{
}
@@ -588,13 +590,13 @@ class FSEngineClientHandler::Private
{
public:
Private()
- : mutex(QMutex::Recursive),
- port(0),
- startServerAsAdmin(false),
- serverStarted(false),
- serverStarting(false),
- active(false),
- thread(new StillAliveThread)
+ : mutex(QMutex::Recursive)
+ , port(0)
+ , startServerAsAdmin(false)
+ , serverStarted(false)
+ , serverStarting(false)
+ , active(false)
+ , thread(new StillAliveThread)
{
thread->moveToThread(thread);
}
@@ -753,7 +755,7 @@ void FSEngineClientHandler::setActive(bool active)
}
/*!
- Returns, wheter this FSEngineClientHandler is active or not.
+ Returns true when this FSEngineClientHandler is active.
*/
bool FSEngineClientHandler::isActive() const
{
@@ -809,8 +811,14 @@ void FSEngineClientHandler::Private::maybeStartServer()
}
if (serverStarted) {
- QTcpSocket s; // now wait for the socket to arrive
- serverStarted = FSEngineClientHandler::instance().connect(&s);
+ QElapsedTimer t;
+ t.start();
+ while (serverStarting && serverStarted
+ && t.elapsed() < 30000) { // 30 seconds ought to be enough for the app to start
+ QTcpSocket s;
+ if (FSEngineClientHandler::instance().connect(&s))
+ serverStarting = false;
+ }
}
serverStarting = false;
}