Skip to content

Commit 11fe9f0

Browse files
committed
Improve breaking out of ticker loop.
This is a better fix for #156.
1 parent faac69c commit 11fe9f0

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

internal/backend/basicstation/backend.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -746,6 +746,7 @@ func (b *Backend) websocketWrap(handler func(*http.Request, *websocket.Conn), w
746746

747747
ticker := time.NewTicker(b.pingInterval)
748748
defer ticker.Stop()
749+
done := make(chan struct{})
749750

750751
go func() {
751752
for {
@@ -756,11 +757,13 @@ func (b *Backend) websocketWrap(handler func(*http.Request, *websocket.Conn), w
756757
if err := conn.WriteMessage(websocket.PingMessage, nil); err != nil {
757758
log.WithError(err).Error("backend/basicstation: send ping message error")
758759
conn.Close()
759-
return
760760
}
761+
case <-done:
762+
return
761763
}
762764
}
763765
}()
764766

765767
handler(r, conn)
768+
done <- struct{}{}
766769
}

0 commit comments

Comments
 (0)