From b6981d94fb5fb12024738b639f9e389dd04578da Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Tue, 22 Nov 2016 10:26:11 +0100 Subject: Process change replays as part of the synchronization queue --- common/genericresource.cpp | 20 +++----------------- 1 file changed, 3 insertions(+), 17 deletions(-) (limited to 'common/genericresource.cpp') diff --git a/common/genericresource.cpp b/common/genericresource.cpp index 746fa33..e36b750 100644 --- a/common/genericresource.cpp +++ b/common/genericresource.cpp @@ -290,19 +290,6 @@ KAsync::Job GenericResource::inspect( return KAsync::null(); } -void GenericResource::enableChangeReplay(bool enable) -{ - Q_ASSERT(mSynchronizer); - if (enable) { - QObject::connect(mPipeline.data(), &Pipeline::revisionUpdated, mSynchronizer.data(), &ChangeReplay::revisionChanged, Qt::QueuedConnection); - QObject::connect(mSynchronizer.data(), &ChangeReplay::changesReplayed, this, &GenericResource::updateLowerBoundRevision); - QMetaObject::invokeMethod(mSynchronizer.data(), "revisionChanged", Qt::QueuedConnection); - } else { - QObject::disconnect(mPipeline.data(), &Pipeline::revisionUpdated, mSynchronizer.data(), &ChangeReplay::revisionChanged); - QObject::disconnect(mSynchronizer.data(), &ChangeReplay::changesReplayed, this, &GenericResource::updateLowerBoundRevision); - } -} - void GenericResource::setupPreprocessors(const QByteArray &type, const QVector &preprocessors) { mPipeline->setPreprocessors(type, preprocessors); @@ -338,7 +325,9 @@ void GenericResource::setupSynchronizer(const QSharedPointer &sync } mProcessor->setOldestUsedRevision(mSynchronizer->getLastReplayedRevision()); - enableChangeReplay(true); + QObject::connect(mPipeline.data(), &Pipeline::revisionUpdated, mSynchronizer.data(), &ChangeReplay::revisionChanged, Qt::QueuedConnection); + QObject::connect(mSynchronizer.data(), &ChangeReplay::changesReplayed, this, &GenericResource::updateLowerBoundRevision); + QMetaObject::invokeMethod(mSynchronizer.data(), "revisionChanged", Qt::QueuedConnection); } void GenericResource::removeFromDisk(const QByteArray &instanceIdentifier) @@ -406,11 +395,8 @@ KAsync::Job GenericResource::synchronizeWithSource(const Sink::QueryBase & emit notify(n); SinkLog() << " Synchronizing"; - // Changereplay would deadlock otherwise when trying to open the synchronization store - enableChangeReplay(false); return mSynchronizer->synchronize(query) .then([this](const KAsync::Error &error) { - enableChangeReplay(true); if (!error) { SinkLog() << "Done Synchronizing"; Sink::Notification n; -- cgit v1.2.3