Skip to content

Commit

Permalink
datatransfer: fix deadlock
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Guillaume Roguez authored and Anthony Léonard committed Jan 8, 2018
1 parent 4dee3af commit 25fcfd5
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions src/data_transfer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
Expand All @@ -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;
}
Expand Down

0 comments on commit 25fcfd5

Please sign in to comment.