From b75079a9cac061ebaf6c858154bb8d15955cf14b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=BA=90=E6=96=87=E9=9B=A8?= <41315874+fumiama@users.noreply.github.com> Date: Mon, 28 Mar 2022 17:06:52 +0800 Subject: [PATCH] fix: Close --- reg.go | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/reg.go b/reg.go index 607c85a..82ac1d9 100644 --- a/reg.go +++ b/reg.go @@ -55,22 +55,26 @@ func NewRegReader(addr, pwd string) *Regedit { } func (r *Regedit) Connect() (err error) { - r.Lock() - r.conn, err = net.Dial("tcp", r.addr) - if err != nil { - r.isopen = true + if !r.isopen { + r.Lock() + r.conn, err = net.Dial("tcp", r.addr) + if err == nil { + r.isopen = true + } + r.Unlock() } - r.Unlock() return } func (r *Regedit) ConnectIn(wait time.Duration) (err error) { - r.Lock() - r.conn, err = net.DialTimeout("tcp", r.addr, wait) - if err != nil { - r.isopen = true + if !r.isopen { + r.Lock() + r.conn, err = net.DialTimeout("tcp", r.addr, wait) + if err == nil { + r.isopen = true + } + r.Unlock() } - r.Unlock() return } @@ -83,7 +87,9 @@ func (r *Regedit) Close() (err error) { p.Put() r.seq = 0 r.isopen = false - return r.conn.Close() + err = r.conn.Close() + r.conn = nil + return } return }