1
0
mirror of https://github.com/v2fly/v2ray-core.git synced 2024-12-22 01:57:12 -05:00

release memory in kcp connection

This commit is contained in:
Darien Raymond 2016-11-21 22:41:12 +01:00
parent 70c75038a2
commit 15cb543abb
No known key found for this signature in database
GPG Key ID: 7251FFA14BB18169
3 changed files with 19 additions and 0 deletions

View File

@ -467,6 +467,8 @@ func (this *Connection) Terminate() {
this.dataInputCond.Broadcast()
this.dataOutputCond.Broadcast()
this.writer.Close()
this.sendingWorker.Release()
this.receivingWorker.Release()
}
func (this *Connection) HandleOption(opt SegmentOption) {

View File

@ -137,6 +137,10 @@ func NewReceivingWorker(kcp *Connection) *ReceivingWorker {
return worker
}
func (this *ReceivingWorker) Release() {
this.leftOver.Release()
}
func (this *ReceivingWorker) ProcessSendingNext(number uint32) {
this.Lock()
defer this.Unlock()

View File

@ -36,6 +36,15 @@ func NewSendingWindow(size uint32, writer SegmentWriter, onPacketLoss func(uint3
return window
}
func (this *SendingWindow) Release() {
if this == nil {
return
}
for _, seg := range this.data {
seg.Release()
}
}
func (this *SendingWindow) Len() int {
return int(this.len)
}
@ -192,6 +201,10 @@ func NewSendingWorker(kcp *Connection) *SendingWorker {
return worker
}
func (this *SendingWorker) Release() {
this.window.Release()
}
func (this *SendingWorker) ProcessReceivingNext(nextNumber uint32) {
this.Lock()
defer this.Unlock()