From 25fcfd5b7cab41b46a5e1472dd86d6f4faa716bf Mon Sep 17 00:00:00 2001 From: Guillaume Roguez <guillaume.roguez@savoirfairelinux.com> Date: Mon, 8 Jan 2018 16:20:37 -0500 Subject: [PATCH] datatransfer: fix deadlock Mutex deadlock occuring during file transfer creation. Exchanging some calls to fix the situation. Change-Id: I2f0108e63e89a13e3f6f2c1b1e096fbf9a6a1290 Reviewed-by: Olivier Soldano <olivier.soldano@savoirfairelinux.com> --- src/data_transfer.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/data_transfer.cpp b/src/data_transfer.cpp index e7937242c4..728a566be9 100644 --- a/src/data_transfer.cpp +++ b/src/data_transfer.cpp @@ -319,9 +319,9 @@ std::shared_ptr<DataTransfer> DataTransferFacade::Impl::createFileTransfer(const std::string& file_path, const std::string& display_name) { - std::lock_guard<std::mutex> lk {mapMutex_}; auto id = generateUID(); auto transfer = std::make_shared<FileTransfer>(id, file_path, display_name); + std::lock_guard<std::mutex> lk {mapMutex_}; map_.emplace(id, transfer); return transfer; } @@ -330,9 +330,9 @@ std::shared_ptr<IncomingFileTransfer> DataTransferFacade::Impl::createIncomingFileTransfer(const std::string& display_name, std::size_t offset) { - std::lock_guard<std::mutex> lk {mapMutex_}; auto id = generateUID(); auto transfer = std::make_shared<IncomingFileTransfer>(id, display_name, offset); + std::lock_guard<std::mutex> lk {mapMutex_}; map_.emplace(id, transfer); return transfer; } -- GitLab