From 90be8fafb39469bd2c318c033e63294ebaad2ca4 Mon Sep 17 00:00:00 2001 From: Shauren Date: Sun, 30 Nov 2025 14:25:32 +0100 Subject: Core/Misc: Use std::scoped_lock instead of unique_lock where possible (and old lock_guard) --- src/server/game/Server/Protocol/PacketLog.cpp | 2 +- src/server/game/Server/WorldSession.cpp | 17 +++++++---------- src/server/game/Server/WorldSocket.cpp | 8 ++++---- 3 files changed, 12 insertions(+), 15 deletions(-) (limited to 'src/server/game/Server') diff --git a/src/server/game/Server/Protocol/PacketLog.cpp b/src/server/game/Server/Protocol/PacketLog.cpp index cc948cd04a1..3b9080a7b56 100644 --- a/src/server/game/Server/Protocol/PacketLog.cpp +++ b/src/server/game/Server/Protocol/PacketLog.cpp @@ -114,7 +114,7 @@ void PacketLog::Initialize() void PacketLog::LogPacket(WorldPacket const& packet, Direction direction, boost::asio::ip::address const& addr, uint16 port, ConnectionType connectionType) { - std::lock_guard lock(_logPacketLock); + std::scoped_lock lock(_logPacketLock); PacketHeader header; header.Direction = direction == CLIENT_TO_SERVER ? 0x47534d43 : 0x47534d53; diff --git a/src/server/game/Server/WorldSession.cpp b/src/server/game/Server/WorldSession.cpp index dcdd982d79e..95a34c24adc 100644 --- a/src/server/game/Server/WorldSession.cpp +++ b/src/server/game/Server/WorldSession.cpp @@ -522,21 +522,18 @@ bool WorldSession::Update(uint32 diff, PacketFilter& updater) LogoutPlayer(true); ///- Cleanup socket pointer if need - if ((m_Socket[CONNECTION_TYPE_REALM] && !m_Socket[CONNECTION_TYPE_REALM]->IsOpen()) || - (m_Socket[CONNECTION_TYPE_INSTANCE] && !m_Socket[CONNECTION_TYPE_INSTANCE]->IsOpen())) + if (std::ranges::any_of(m_Socket, [](std::shared_ptr const& s) { return s && !s->IsOpen(); })) { expireTime -= expireTime > diff ? diff : expireTime; if (expireTime < diff || forceExit || !GetPlayer()) { - if (m_Socket[CONNECTION_TYPE_REALM]) + for (std::shared_ptr& socket : m_Socket) { - m_Socket[CONNECTION_TYPE_REALM]->CloseSocket(); - m_Socket[CONNECTION_TYPE_REALM].reset(); - } - if (m_Socket[CONNECTION_TYPE_INSTANCE]) - { - m_Socket[CONNECTION_TYPE_INSTANCE]->CloseSocket(); - m_Socket[CONNECTION_TYPE_INSTANCE].reset(); + if (socket) + { + socket->CloseSocket(); + socket.reset(); + } } } } diff --git a/src/server/game/Server/WorldSocket.cpp b/src/server/game/Server/WorldSocket.cpp index f8af2f512a7..a701939c313 100644 --- a/src/server/game/Server/WorldSocket.cpp +++ b/src/server/game/Server/WorldSocket.cpp @@ -253,7 +253,7 @@ void WorldSocket::SendAuthSession() void WorldSocket::OnClose() { { - std::lock_guard sessionGuard(_worldSessionLock); + std::scoped_lock sessionGuard(_worldSessionLock); _worldSession = nullptr; } } @@ -323,7 +323,7 @@ void WorldSocket::QueueQuery(QueryCallback&& queryCallback) void WorldSocket::SetWorldSession(WorldSession* session) { - std::lock_guard sessionGuard(_worldSessionLock); + std::scoped_lock sessionGuard(_worldSessionLock); _worldSession = session; _authed = true; } @@ -1053,7 +1053,7 @@ bool WorldSocket::HandlePing(WorldPackets::Auth::Ping& ping) { bool ignoresOverspeedPingsLimit = [&] { - std::lock_guard sessionGuard(_worldSessionLock); + std::scoped_lock sessionGuard(_worldSessionLock); return _worldSession && _worldSession->HasPermission(rbac::RBAC_PERM_SKIP_CHECK_OVERSPEED_PING); }(); @@ -1072,7 +1072,7 @@ bool WorldSocket::HandlePing(WorldPackets::Auth::Ping& ping) bool success = [&] { - std::lock_guard sessionGuard(_worldSessionLock); + std::scoped_lock sessionGuard(_worldSessionLock); if (_worldSession) { _worldSession->SetLatency(ping.Latency); -- cgit v1.2.3