xy 1 tydzień temu
rodzic
commit
be85503469
1 zmienionych plików z 6 dodań i 4 usunięć
  1. 6 4
      src/server/game/ludo/room.go

+ 6 - 4
src/server/game/ludo/room.go

@@ -69,15 +69,15 @@ func GetRoomsByLevel(matchInfo *msg.MatchLudo, roomStatus msg.RoomStatus) []*msg
 }
 
 func CreateRoom(matchInfo *msg.MatchLudo, userId string) *msg.RoomInfo {
-	gameConfig.mu.Lock()
-	defer gameConfig.mu.Unlock()
-
 	userInfo, err_info := redismgr.GetUserInfoFromRedis(userId)
 	if err_info != nil {
 		return nil
 	}
+	// 生成房间ID(不加锁)
+	roomId := generateRoomID()
+
 	newRoom := &msg.RoomInfo{
-		Id:         generateRoomID(),
+		Id:         roomId,
 		RoomLevel:  int32(matchInfo.RoomLevel),
 		RoomType:   matchInfo.SelectRoomType,
 		RoomMode:   msg.RoomMode_WAN_JIA, //设置为玩家pvp模式
@@ -96,6 +96,8 @@ func CreateRoom(matchInfo *msg.MatchLudo, userId string) *msg.RoomInfo {
 			},
 		},
 	}
+	gameConfig.mu.Lock()
+	defer gameConfig.mu.Unlock()
 	gameConfig.RoomMap[newRoom.Id] = newRoom
 	return newRoom
 }