diff --git a/conn.go b/conn.go index 35c6279..966471e 100644 --- a/conn.go +++ b/conn.go @@ -186,8 +186,9 @@ func (c *Conn) close(cause error) error { return ErrClosed } - for _, call := range c.pending { + for id, call := range c.pending { close(call.done) + delete(c.pending, id) } if cause != nil && cause != io.EOF && cause != io.ErrUnexpectedEOF {