diff --git a/src/jamidht/jamiaccount.cpp b/src/jamidht/jamiaccount.cpp index 60eaea9e36ce49e56f0eba216eeab9b82216c959..d52fc315760687d95314e5a538268d68c02087ca 100644 --- a/src/jamidht/jamiaccount.cpp +++ b/src/jamidht/jamiaccount.cpp @@ -2094,16 +2094,17 @@ JamiAccount::doRegister_() syncCnt_.fetch_add(1); gs->setOnFetched( [w = weak(), conversationId, deviceId](const std::string& commit) { - if (auto shared = w.lock()) { - shared->convModule()->setFetched(conversationId, - deviceId.toString(), - commit); - shared->syncCnt_.fetch_sub(1); - if (shared->syncCnt_.load() == 0) { - emitSignal<libjami::ConversationSignal::ConversationCloned>( - shared->getAccountID().c_str()); + dht::ThreadPool::computation().run([w, conversationId, deviceId, commit]() { + if (auto shared = w.lock()) { + shared->convModule()->setFetched(conversationId, + deviceId.toString(), + commit); + if (shared->syncCnt_.fetch_sub(1) == 1) { + emitSignal<libjami::ConversationSignal::ConversationCloned>( + shared->getAccountID().c_str()); + } } - } + }); }); const dht::Value::Id serverId = ValueIdDist()(rand); {