Avoid leaking tickers

In Go 1.22 and earlier, a ticker needs to be explicitly stopped
when it's no longer useful in order to avoid a resource leak.
In Go 1.23 and later, an orphaned ticker will eventually be
garbage collected, but it's still more thrifty to stop it early.
This commit is contained in:
Juliusz Chroboczek
2024-08-01 10:39:30 +02:00
committed by Sean DuBois
parent cbbb1c29e5
commit f29ef99b22
15 changed files with 34 additions and 9 deletions

View File

@@ -70,7 +70,9 @@ func main() {
d.OnOpen(func() {
fmt.Printf("Data channel '%s'-'%d' open. Random messages will now be sent to any connected DataChannels every 5 seconds\n", d.Label(), d.ID())
for range time.NewTicker(5 * time.Second).C {
ticker := time.NewTicker(5 * time.Second)
defer ticker.Stop()
for range ticker.C {
message, sendErr := randutil.GenerateCryptoRandomString(15, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")
if sendErr != nil {
panic(sendErr)