prevent potential hangup after ping timeout (fixes: #50)

Signed-off-by: Liam Stanley <me@liamstanley.io>
This commit is contained in:
Liam Stanley 2022-03-21 17:25:26 -04:00
parent 8487a7de15
commit 887ab30b90
No known key found for this signature in database
GPG Key ID: 16DB886FBE5ABAC2

View File

@ -606,15 +606,16 @@ func (c *Client) pingLoop(ctx context.Context, errs chan error, wg *sync.WaitGro
if time.Since(c.conn.lastPong) > c.Config.PingDelay+(60*time.Second) {
// It's 60 seconds over what out ping delay is, connection
// has probably dropped.
errs <- ErrTimedOut{
err := ErrTimedOut{
TimeSinceSuccess: time.Since(c.conn.lastPong),
LastPong: c.conn.lastPong,
LastPing: c.conn.lastPing,
Delay: c.Config.PingDelay,
}
wg.Done()
c.conn.mu.RUnlock()
errs <- err
wg.Done()
return
}
c.conn.mu.RUnlock()