added mutex

master
Alex 2021-12-29 12:12:48 +01:00
parent 65c162099b
commit 1ea6c3afa8
1 changed files with 28 additions and 1 deletions

View File

@ -1,8 +1,35 @@
package structs
import "github.com/gofiber/websocket/v2"
import (
"sync"
"github.com/gofiber/websocket/v2"
"krakatoa.net/backend/modules/logger"
)
type MinecraftClient struct {
Name string
Connection *websocket.Conn
connMu sync.Mutex
CmdIDs []int
cmdIDMu sync.Mutex
}
func (mcClient *MinecraftClient) SendBinaryMessage(conn *websocket.Conn, msg []byte) error {
mcClient.connMu.Lock()
defer mcClient.connMu.Unlock()
return conn.WriteMessage(websocket.BinaryMessage, msg)
}
func (mcClient *MinecraftClient) RemoveCmdID(cmdID int) {
mcClient.cmdIDMu.Lock()
defer mcClient.cmdIDMu.Unlock()
newArr, err := removeCmdIDFromList(mcClient.CmdIDs, cmdID)
if err != nil {
logger.WebVoice.Warnln("removeCmdIDFromList:", err)
} else {
mcClient.CmdIDs = newArr
}
}