@@ -227,7 +227,7 @@ func (s *LobbyServer) watchGameServer(name string, g *gameserver.GameServer) {
227227 go g .ManageBuffer ()
228228 go g .ManagePlayers ()
229229 for {
230- if ! g .Running {
230+ if ! g .Running . Load () {
231231 g .Logger .Info ("game server deleted" , "port" , g .Port )
232232 delete (s .gameServers , name )
233233 return
@@ -304,7 +304,7 @@ func (s *LobbyServer) wsHandler(w http.ResponseWriter, r *http.Request) {
304304 if w .(gameserver.Client ).Socket == ws {
305305 v .Logger .Info ("Player has left lobby" , "reason" , err .Error (), "player" , k , "address" , ws .RemoteAddr ())
306306
307- if ! v .Running {
307+ if ! v .Running . Load () {
308308 v .Players .Delete (k )
309309 } else {
310310 if client , ok := w .(gameserver.Client ); ok {
@@ -318,7 +318,7 @@ func (s *LobbyServer) wsHandler(w http.ResponseWriter, r *http.Request) {
318318 return true
319319 }
320320 })
321- if ! v .Running {
321+ if ! v .Running . Load () {
322322 if v .GetPlayersLength () == 0 {
323323 v .Logger .Info ("No more players in lobby, deleting" )
324324 v .CloseServers ()
@@ -428,7 +428,7 @@ func (s *LobbyServer) wsHandler(w http.ResponseWriter, r *http.Request) {
428428 if err := s .sendData (ws , sendMessage ); err != nil {
429429 s .Logger .Error (err , "failed to send message" , "message" , sendMessage , "address" , ws .RemoteAddr ())
430430 }
431- } else if g .Running {
431+ } else if g .Running . Load () {
432432 sendMessage .Accept = BadGameState
433433 sendMessage .Message = "Game is already running"
434434 if err := s .sendData (ws , sendMessage ); err != nil {
@@ -466,7 +466,7 @@ func (s *LobbyServer) wsHandler(w http.ResponseWriter, r *http.Request) {
466466 authenticated = true
467467 var rooms []RoomData
468468 for i , v := range s .gameServers {
469- if v .Running {
469+ if v .Running . Load () {
470470 continue
471471 }
472472 if receivedMessage .Emulator != v .Emulator {
@@ -527,7 +527,7 @@ func (s *LobbyServer) wsHandler(w http.ResponseWriter, r *http.Request) {
527527 } else if g .GetPlayersLength () >= 4 {
528528 accepted = RoomFull
529529 message = "Room is full"
530- } else if g .Running {
530+ } else if g .Running . Load () {
531531 accepted = BadGameState
532532 message = "Game already running"
533533 } else if receivedMessage .PlayerName == "" {
@@ -631,7 +631,7 @@ func (s *LobbyServer) wsHandler(w http.ResponseWriter, r *http.Request) {
631631 if err := s .sendData (ws , sendMessage ); err != nil {
632632 s .Logger .Error (err , "failed to send message" , "message" , sendMessage , "address" , ws .RemoteAddr ())
633633 }
634- } else if g .Running {
634+ } else if g .Running . Load () {
635635 sendMessage .Accept = BadGameState
636636 sendMessage .Message = "Game is already running"
637637 if err := s .sendData (ws , sendMessage ); err != nil {
@@ -655,7 +655,7 @@ func (s *LobbyServer) wsHandler(w http.ResponseWriter, r *http.Request) {
655655 }
656656 }
657657
658- g .Running = true
658+ g .Running . Store ( true )
659659 g .StartTime = time .Now ()
660660 g .Logger .Info ("starting game" , "buffer_target" , g .BufferTarget )
661661 g .NumberOfPlayers = g .GetPlayersLength ()
0 commit comments