diff --git a/transport/internet/kcp/connection.go b/transport/internet/kcp/connection.go index a6ccd8ca..727537f9 100644 --- a/transport/internet/kcp/connection.go +++ b/transport/internet/kcp/connection.go @@ -414,6 +414,7 @@ func (this *Connection) Input(data []byte) int { } this.sendingWorker.ProcessReceivingNext(seg.ReceivinNext) this.receivingWorker.ProcessSendingNext(seg.SendingNext) + seg.Release() default: } } diff --git a/transport/internet/kcp/sending.go b/transport/internet/kcp/sending.go index a39af80d..63fdf325 100644 --- a/transport/internet/kcp/sending.go +++ b/transport/internet/kcp/sending.go @@ -292,6 +292,8 @@ func (this *SendingWorker) ProcessAck(number uint32) { } func (this *SendingWorker) ProcessSegment(current uint32, seg *AckSegment) { + defer seg.Release() + this.Lock() defer this.Unlock()