diff options
Diffstat (limited to 'common/genericresource.cpp')
-rw-r--r-- | common/genericresource.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/common/genericresource.cpp b/common/genericresource.cpp index 8704e5a..b32a22b 100644 --- a/common/genericresource.cpp +++ b/common/genericresource.cpp | |||
@@ -459,16 +459,20 @@ void GenericResource::processCommand(int commandId, const QByteArray &data) | |||
459 | 459 | ||
460 | KAsync::Job<void> GenericResource::synchronizeWithSource() | 460 | KAsync::Job<void> GenericResource::synchronizeWithSource() |
461 | { | 461 | { |
462 | return KAsync::start<void>([this]() { | 462 | return KAsync::start<void>([this](KAsync::Future<void> &future) { |
463 | Log() << " Synchronizing"; | 463 | Log() << " Synchronizing"; |
464 | // Changereplay would deadlock otherwise when trying to open the synchronization store | 464 | // Changereplay would deadlock otherwise when trying to open the synchronization store |
465 | enableChangeReplay(false); | 465 | enableChangeReplay(false); |
466 | auto mainStore = QSharedPointer<Sink::Storage>::create(Sink::storageLocation(), mResourceInstanceIdentifier, Sink::Storage::ReadOnly); | 466 | auto mainStore = QSharedPointer<Sink::Storage>::create(Sink::storageLocation(), mResourceInstanceIdentifier, Sink::Storage::ReadOnly); |
467 | auto syncStore = QSharedPointer<Sink::Storage>::create(Sink::storageLocation(), mResourceInstanceIdentifier + ".synchronization", Sink::Storage::ReadWrite); | 467 | auto syncStore = QSharedPointer<Sink::Storage>::create(Sink::storageLocation(), mResourceInstanceIdentifier + ".synchronization", Sink::Storage::ReadWrite); |
468 | synchronizeWithSource(*mainStore, *syncStore) | 468 | synchronizeWithSource(*mainStore, *syncStore) |
469 | .then<void>([this, mainStore, syncStore]() { | 469 | .then<void>([this, mainStore, syncStore, &future]() { |
470 | Log() << "Done Synchronizing"; | 470 | Log() << "Done Synchronizing"; |
471 | enableChangeReplay(true); | 471 | enableChangeReplay(true); |
472 | future.setFinished(); | ||
473 | }, [this, &future](int errorCode, const QString &error) { | ||
474 | enableChangeReplay(true); | ||
475 | future.setError(errorCode, error); | ||
472 | }) | 476 | }) |
473 | .exec(); | 477 | .exec(); |
474 | }); | 478 | }); |