diff options
| author | Shauren <shauren.trinity@gmail.com> | 2025-11-30 14:25:32 +0100 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2025-11-30 14:25:32 +0100 |
| commit | 90be8fafb39469bd2c318c033e63294ebaad2ca4 (patch) | |
| tree | 2d2d5424e54339b7581f9e224e909d6f08003136 /src/server/game/Server | |
| parent | d3f2aee245d62c70c940831531b17da821053f91 (diff) | |
Core/Misc: Use std::scoped_lock instead of unique_lock where possible (and old lock_guard)
Diffstat (limited to 'src/server/game/Server')
| -rw-r--r-- | src/server/game/Server/Protocol/PacketLog.cpp | 2 | ||||
| -rw-r--r-- | src/server/game/Server/WorldSession.cpp | 17 | ||||
| -rw-r--r-- | src/server/game/Server/WorldSocket.cpp | 8 |
3 files changed, 12 insertions, 15 deletions
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<std::mutex> 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<WorldSocket> 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<WorldSocket>& 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<std::mutex> 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<std::mutex> 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<std::mutex> 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<std::mutex> sessionGuard(_worldSessionLock); + std::scoped_lock sessionGuard(_worldSessionLock); if (_worldSession) { _worldSession->SetLatency(ping.Latency); |
