update
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user