diff --git a/src/server/game/message_mgr.go b/src/server/game/message_mgr.go index f6d431dc..c0752752 100644 --- a/src/server/game/message_mgr.go +++ b/src/server/game/message_mgr.go @@ -210,17 +210,16 @@ func PlayerLoginHandler(data *msg.Msg) (interface{}, error) { } messageMgrData.mu.Unlock() - // 对玩家消息列表加锁 - messageMgrData.MessageList[int64(data.From)].mu.Lock() - defer messageMgrData.MessageList[int64(data.From)].mu.Unlock() log.Debug("[Middleware] Player login success player id: %v, node: %v", data.From, data.Extra.(int)) node := data.Extra.(int) messageMgrData.PlayerList[int64(data.From)] = node - // 发送离线消息 + // 对玩家消息列表加锁 messages := messageMgrData.MessageList[int64(data.From)] messages.mu.Lock() - defer messages.mu.Unlock() + defer messages.mu.Lock() + // 发送离线消息 + log.Debug("[Middleware] Player sync logout message player id: %v, len: %d", data.From, len(messages.Messages)) for _, message := range messages.Messages { go sendMessageAsync(message, node) }