This commit is contained in:
matst80
2024-11-11 19:47:44 +01:00
parent e63a92213b
commit 3eaa42b615
4 changed files with 33 additions and 28 deletions

View File

@@ -23,10 +23,12 @@ type CartPacketQueue struct {
//connection net.Conn
}
const cartCap = 150
func NewCartPacketQueue(connection net.Conn) *CartPacketQueue {
queue := &CartPacketQueue{
Packets: make([]CartPacketWithData, 0),
Packets: make([]CartPacketWithData, 0, cartCap),
//connection: connection,
}
go func() {
@@ -55,14 +57,13 @@ func NewCartPacketQueue(connection net.Conn) *CartPacketQueue {
func (p *CartPacketQueue) HandleData(t uint32, id CartId, data []byte) {
ts := time.Now()
cap := 150
l := make([]CartPacketWithData, 0, cap)
l := make([]CartPacketWithData, 0, cartCap)
p.mu.RLock()
breakAt := ts.Add(-time.Millisecond * 250)
for _, packet := range p.Packets {
if !packet.Consumed && packet.Added.After(breakAt) {
l = append(l, packet)
if len(l) >= cap {
if len(l) >= cartCap {
break
}
}
@@ -89,7 +90,7 @@ func (p *CartPacketQueue) Expect(messageType uint32, id CartId, timeToWait time.
}
p.mu.RLock()
for _, packet := range p.Packets {
if packet.MessageType == messageType && packet.Id == id && packet.Added.After(start) {
if !packet.Consumed && packet.MessageType == messageType && packet.Id == id && packet.Added.After(start) {
packet.Consumed = true
p.mu.RUnlock()
return &packet, nil