From d82f0f6e52b601c3067ca70183458f5ce9b22c22 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Mon, 8 Feb 2016 19:31:54 +0100 Subject: Process a command in less than 0.1s --- common/genericresource.cpp | 4 +++- common/resourceaccess.cpp | 18 +++++++++++------- 2 files changed, 14 insertions(+), 8 deletions(-) (limited to 'common') diff --git a/common/genericresource.cpp b/common/genericresource.cpp index ffb323d..6087896 100644 --- a/common/genericresource.cpp +++ b/common/genericresource.cpp @@ -20,6 +20,8 @@ #include static int sBatchSize = 100; +//This interval directly affects the roundtrip time of single commands +static int sCommitInterval = 10; using namespace Sink; @@ -354,7 +356,7 @@ GenericResource::GenericResource(const QByteArray &resourceInstanceIdentifier, c mClientLowerBoundRevision = mPipeline->cleanedUpRevision(); mProcessor->setOldestUsedRevision(mSourceChangeReplay->getLastReplayedRevision()); - mCommitQueueTimer.setInterval(100); + mCommitQueueTimer.setInterval(sCommitInterval); mCommitQueueTimer.setSingleShot(true); QObject::connect(&mCommitQueueTimer, &QTimer::timeout, &mUserQueue, &MessageQueue::commit); } diff --git a/common/resourceaccess.cpp b/common/resourceaccess.cpp index daa2e82..80d60e8 100644 --- a/common/resourceaccess.cpp +++ b/common/resourceaccess.cpp @@ -41,6 +41,7 @@ #include #include #include +#include #undef Trace #define TracePrivate() Trace_area("client.communication." + resourceInstanceIdentifier) @@ -170,23 +171,26 @@ KAsync::Job ResourceAccess::Private::tryToConnect() }, [this, counter](KAsync::Future &future) { TracePrivate() << "Loop"; - KAsync::wait(50) - .then(connectToServer(resourceInstanceIdentifier)) + connectToServer(resourceInstanceIdentifier) .then >([this, &future](const QSharedPointer &s) { Q_ASSERT(s); socket = s; future.setFinished(); - }, - [&future, counter, this](int errorCode, const QString &errorString) { - const int maxRetries = 10; + }, [&future, counter, this](int errorCode, const QString &errorString) { + static int waitTime = 10; + static int timeout = 500; + static int maxRetries = timeout / waitTime; if (*counter > maxRetries) { TracePrivate() << "Giving up"; future.setError(-1, "Failed to connect to socket"); } else { - future.setFinished(); + KAsync::wait(waitTime).then([&future]() { + future.setFinished(); + }).exec(); } *counter = *counter + 1; - }).exec(); + }) + .exec(); }); } -- cgit v1.2.3