From af3d1cfa2697b3abfeba9560e5cbe637d679183f Mon Sep 17 00:00:00 2001 From: SirLynix Date: Sat, 15 Jul 2023 10:36:41 +0200 Subject: [PATCH] Network/NetPacket: Fix mutex recursive lock leading to an exception --- include/Nazara/Network/NetPacket.hpp | 2 +- src/Nazara/Network/NetPacket.cpp | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/include/Nazara/Network/NetPacket.hpp b/include/Nazara/Network/NetPacket.hpp index e0b8fe5ed..f7700d308 100644 --- a/include/Nazara/Network/NetPacket.hpp +++ b/include/Nazara/Network/NetPacket.hpp @@ -64,7 +64,7 @@ namespace Nz MemoryStream m_memoryStream; UInt16 m_netCode; - static std::mutex s_availableBuffersMutex; + static std::recursive_mutex s_availableBuffersMutex; static std::vector>> s_availableBuffers; }; } diff --git a/src/Nazara/Network/NetPacket.cpp b/src/Nazara/Network/NetPacket.cpp index c23665508..73746803f 100644 --- a/src/Nazara/Network/NetPacket.cpp +++ b/src/Nazara/Network/NetPacket.cpp @@ -112,7 +112,7 @@ namespace Nz std::size_t size = m_buffer->GetSize(); - std::lock_guard lock(s_availableBuffersMutex); + std::lock_guard lock(s_availableBuffersMutex); s_availableBuffers.emplace_back(std::make_pair(size, std::move(m_buffer))); } @@ -131,7 +131,7 @@ namespace Nz NazaraAssert(minCapacity >= cursorPos, "Cannot init stream with a smaller capacity than wanted cursor pos"); { - std::lock_guard lock(s_availableBuffersMutex); + std::lock_guard lock(s_availableBuffersMutex); FreeStream(); //< In case it wasn't released yet @@ -171,6 +171,6 @@ namespace Nz s_availableBuffers.clear(); } - std::mutex NetPacket::s_availableBuffersMutex; + std::recursive_mutex NetPacket::s_availableBuffersMutex; std::vector>> NetPacket::s_availableBuffers; }