aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Server
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2025-11-30 14:25:32 +0100
committerShauren <shauren.trinity@gmail.com>2025-11-30 14:25:32 +0100
commit90be8fafb39469bd2c318c033e63294ebaad2ca4 (patch)
tree2d2d5424e54339b7581f9e224e909d6f08003136 /src/server/game/Server
parentd3f2aee245d62c70c940831531b17da821053f91 (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.cpp2
-rw-r--r--src/server/game/Server/WorldSession.cpp17
-rw-r--r--src/server/game/Server/WorldSocket.cpp8
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);