From 9144b66217169e28897815d84a6f3947f333bd1b Mon Sep 17 00:00:00 2001 From: Shelikhoo Date: Mon, 13 Jun 2016 07:08:40 +0800 Subject: [PATCH] KCP: delay conn close to prevent conn leak --- transport/hub/kcp.go | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/transport/hub/kcp.go b/transport/hub/kcp.go index 6bf88b10..db712086 100644 --- a/transport/hub/kcp.go +++ b/transport/hub/kcp.go @@ -74,6 +74,8 @@ type KCPVconn struct { conntokeep time.Time } +var counter int + func (kcpvc *KCPVconn) Read(b []byte) (int, error) { ifb := time.Now().Add(time.Duration(kcpvc.conf.AdvancedConfigs.ReadTimeout) * time.Second) if ifb.After(kcpvc.conntokeep) { @@ -114,12 +116,19 @@ func (kcpvc *KCPVconn) ApplyConf() error { kcpvc.hc.SetMtu(kcpvc.conf.AdvancedConfigs.Mtu) kcpvc.hc.SetACKNoDelay(kcpvc.conf.AdvancedConfigs.Acknodelay) kcpvc.hc.SetDSCP(kcpvc.conf.AdvancedConfigs.Dscp) + //counter++ + //log.Info(counter) return nil } func (kcpvc *KCPVconn) Close() error { - - return kcpvc.hc.Close() + go func() { + time.Sleep(2000 * time.Millisecond) + //counter-- + //log.Info(counter) + kcpvc.hc.Close() + }() + return nil } func (kcpvc *KCPVconn) LocalAddr() net.Addr {