From 69ffe0b284a1868997b054ed7db0b2fc15c14edb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrien.beraud@savoirfairelinux.com> Date: Wed, 1 May 2019 10:34:54 -0400 Subject: [PATCH] jamiaccount: fix deadlock during device revocation Change-Id: I8ef7df59cd972868fda4e95dc0cc36ba123ffa44 --- src/jamidht/jamiaccount.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/jamidht/jamiaccount.cpp b/src/jamidht/jamiaccount.cpp index 536038b29a..ad4fbf9677 100644 --- a/src/jamidht/jamiaccount.cpp +++ b/src/jamidht/jamiaccount.cpp @@ -1146,7 +1146,7 @@ JamiAccount::revokeDevice(const std::string& password, const std::string& device emitSignal<DRing::ConfigurationSignal::DeviceRevocationEnded>(getAccountID(), device, 2); return; } - std::lock_guard<std::mutex> lock(deviceListMutex_); + std::unique_lock<std::mutex> lock(deviceListMutex_); foundAccountDevice(crt); AccountArchive a; try { @@ -1168,6 +1168,7 @@ JamiAccount::revokeDevice(const std::string& password, const std::string& device saveKnownDevices(); emitSignal<DRing::ConfigurationSignal::DeviceRevocationEnded>(getAccountID(), device, 0); emitSignal<DRing::ConfigurationSignal::KnownDevicesChanged>(getAccountID(), getKnownDevices()); + lock.unlock(); syncDevices(); }); return true; -- GitLab