diff options
Diffstat (limited to 'pkg/server/socket/socket.go')
| -rw-r--r-- | pkg/server/socket/socket.go | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/pkg/server/socket/socket.go b/pkg/server/socket/socket.go index ea35be3..cb76cf7 100644 --- a/pkg/server/socket/socket.go +++ b/pkg/server/socket/socket.go @@ -38,11 +38,20 @@ type conn struct { desc string info string - once sync.Once + once sync.Once + closed chan struct{} } func newConn(cn net.Conn, desc, info string) *conn { - c := &conn{Conn: cn, desc: desc, info: info} + c := &conn{ + Conn: cn, + + desc: desc, + info: info, + + closed: make(chan struct{}), + } + return c } @@ -64,6 +73,7 @@ func (c *conn) Close() error { c.once.Do(func() { log.Println("close", c.desc) err = c.Conn.Close() + close(c.closed) }) return err |
