From 05ed05b9a02b6ec2d96eca3806c5ac2f8e8bbf20 Mon Sep 17 00:00:00 2001 From: v2ray Date: Wed, 13 Jul 2016 23:15:40 +0200 Subject: [PATCH] correctly release segments --- transport/internet/kcp/connection.go | 1 + transport/internet/kcp/sending.go | 2 ++ 2 files changed, 3 insertions(+) diff --git a/transport/internet/kcp/connection.go b/transport/internet/kcp/connection.go index a6ccd8caa..727537f9a 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 a39af80de..63fdf3257 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()