From 081deba17b394959b345a71b7a844222e032476d Mon Sep 17 00:00:00 2001 From: Sophie Date: Tue, 10 Mar 2020 08:30:07 +0000 Subject: [PATCH] Add stage locks on find session function --- server/channelserver/channel_server.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/server/channelserver/channel_server.go b/server/channelserver/channel_server.go index d34148cd9..f8afb8caf 100644 --- a/server/channelserver/channel_server.go +++ b/server/channelserver/channel_server.go @@ -169,12 +169,16 @@ func (s *Server) BroadcastMHF(pkt mhfpacket.MHFPacket, ignoredSession *Session) } func (s *Server) FindSessionByCharID(charID uint32) *Session { + s.stagesLock.RLock() + defer s.stagesLock.RUnlock() for _, stage := range s.stages { + stage.RLock() for client := range stage.clients { if client.charID == charID { return client } } + stage.RUnlock() } return nil