(err error, wasClean bool)
| 67 | } |
| 68 | |
| 69 | func (c *Conn) close(err error, wasClean bool) { |
| 70 | c.closeOnce.Do(func() { |
| 71 | runtime.SetFinalizer(c, nil) |
| 72 | |
| 73 | if !wasClean { |
| 74 | err = fmt.Errorf("unclean connection close: %w", err) |
| 75 | } |
| 76 | c.setCloseErr(err) |
| 77 | c.closeWasClean = wasClean |
| 78 | close(c.closed) |
| 79 | }) |
| 80 | } |
| 81 | |
| 82 | func (c *Conn) init() { |
| 83 | c.closed = make(chan struct{}) |