Skip to content

Commit cc30bef

Browse files
committed
a few more fixes
1 parent ead68b6 commit cc30bef

3 files changed

Lines changed: 6 additions & 7 deletions

File tree

internal/gameServer/server.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"net"
66
"strings"
77
"sync"
8+
"sync/atomic"
89
"time"
910

1011
"github.com/go-logr/logr"
@@ -47,7 +48,7 @@ type GameServer struct {
4748
VerifyIP bool
4849
Running bool
4950
Features map[string]string
50-
NeedsUpdatePlayers bool
51+
NeedsUpdatePlayers atomic.Bool
5152
NumberOfPlayers int
5253
BufferTarget byte
5354
QuitChannel *chan bool
@@ -184,7 +185,7 @@ func (g *GameServer) ManagePlayers() {
184185
g.Players.Range(func(k, v any) bool {
185186
if v.(Client).Number == int(i) {
186187
g.Players.Delete(k)
187-
g.NeedsUpdatePlayers = true
188+
g.NeedsUpdatePlayers.Store(true)
188189
}
189190
return true
190191
})

internal/gameServer/tcp.go

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -340,18 +340,16 @@ func (g *GameServer) processTCP(conn *net.TCPConn) {
340340
g.gameDataMutex.Lock()
341341
g.gameData.playerAlive[i] = false
342342
g.gameData.status |= (0x1 << (i + 1))
343-
g.gameDataMutex.Unlock()
344343
g.registrations.Delete(i)
345344

346345
g.Players.Range(func(k, v any) bool {
347346
if v.(Client).Number == int(i) {
348347
g.Players.Delete(k)
349-
g.NeedsUpdatePlayers = true
348+
g.NeedsUpdatePlayers.Store(true)
350349
}
351350
return true
352351
})
353352

354-
g.gameDataMutex.Lock()
355353
g.gameData.bufferHealth[i] = g.gameData.bufferHealth[i][:0]
356354
g.gameDataMutex.Unlock()
357355
}

internal/lobbyServer/lobby.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -245,8 +245,8 @@ func (s *LobbyServer) watchGameServer(name string, g *gameserver.GameServer) {
245245
delete(s.gameServers, name)
246246
return
247247
}
248-
if g.NeedsUpdatePlayers {
249-
g.NeedsUpdatePlayers = false
248+
if g.NeedsUpdatePlayers.Load() {
249+
g.NeedsUpdatePlayers.Store(false)
250250
s.updatePlayers(g)
251251
}
252252
time.Sleep(time.Second * 5)

0 commit comments

Comments
 (0)