change mutex
All checks were successful
Build and Publish / BuildAndDeploy (push) Successful in 5m35s

This commit is contained in:
matst80
2024-11-09 22:09:22 +01:00
parent b1f6d8b071
commit 59348ad341

View File

@@ -168,7 +168,7 @@ type PacketWithData struct {
} }
type PacketQueue struct { type PacketQueue struct {
mu sync.Mutex mu sync.RWMutex
Packets []PacketWithData Packets []PacketWithData
connection net.Conn connection net.Conn
} }
@@ -185,7 +185,6 @@ func NewPacketQueue(connection net.Conn) *PacketQueue {
log.Printf("Error receiving packet: %v\n", err) log.Printf("Error receiving packet: %v\n", err)
//return //return
} }
log.Printf("Received packet %d\n", messageType)
queue.mu.Lock() queue.mu.Lock()
queue.Packets = append(queue.Packets, PacketWithData{ queue.Packets = append(queue.Packets, PacketWithData{
MessageType: messageType, MessageType: messageType,
@@ -198,13 +197,13 @@ func NewPacketQueue(connection net.Conn) *PacketQueue {
go func(queueTimer *time.Ticker) { go func(queueTimer *time.Ticker) {
for { for {
<-queueTimer.C <-queueTimer.C
queue.mu.Lock() queue.mu.RLock()
for i, packet := range queue.Packets { for i, packet := range queue.Packets {
if time.Since(packet.Added) > time.Second*5 { if time.Since(packet.Added) > time.Second*5 {
queue.Packets = append(queue.Packets[:i], queue.Packets[i+1:]...) queue.Packets = append(queue.Packets[:i], queue.Packets[i+1:]...)
} }
} }
queue.mu.Unlock() queue.mu.RUnlock()
} }
}(time.NewTicker(time.Second)) }(time.NewTicker(time.Second))
return queue return queue