laneya2

cave exploration game
git clone https://git.ce9e.org/laneya2.git

commit
8badf49b0cf444aa947f166577c040f54a76f2fd
parent
f716fc98652050a97c8996109ac257837ae6636c
Author
Tobias Bengfort <tobias.bengfort@posteo.de>
Date
2024-10-06 06:19
fix concurrency: drain player.send on disconnect

Diffstat

M server.go 8 +++++++-

1 files changed, 7 insertions, 1 deletions


diff --git a/server.go b/server.go

@@ -57,7 +57,13 @@ func (player *Player) readPump() {
   57    57 func (player *Player) writePump() {
   58    58 	defer player.conn.Close()
   59    59 	ticker := time.NewTicker(20 * time.Second)
   60    -1 	defer ticker.Stop()
   -1    60 
   -1    61 	defer func() {
   -1    62 		ticker.Stop()
   -1    63 		for _ = range player.send {
   -1    64 			// drain
   -1    65 		}
   -1    66 	}()
   61    67 
   62    68 	for {
   63    69 		select {