From 632d79dd57e6a4c6022388c7f30ac57ed29f9da3 Mon Sep 17 00:00:00 2001 From: Roger Ferdinan Date: Sun, 8 Feb 2026 20:50:55 +0700 Subject: [PATCH] fix: moving writeFunc as culprit of memory leak --- v1/server/server.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/v1/server/server.go b/v1/server/server.go index 61673cf..3aa315a 100644 --- a/v1/server/server.go +++ b/v1/server/server.go @@ -64,10 +64,12 @@ func (b *SafeWebsocketServerBuilder) HandleFunc(pattern string, fn func(http.Res return b } -func (b *SafeWebsocketServerBuilder) HandleFuncWebsocket(pattern string, subscribedPath string, writeFunc func(chan []byte)) *SafeWebsocketServerBuilder { +func (b *SafeWebsocketServerBuilder) HandleFuncWebsocket(pattern string, subscribedPath string, writeFunc func(writeChannel chan []byte)) *SafeWebsocketServerBuilder { h := internal.NewHub() h.Run() + go writeFunc(h.Broadcast) + b.mux.HandleFunc(pattern+subscribedPath, func(w http.ResponseWriter, r *http.Request) { conn, err := b.upgrader.Upgrade(w, r, nil) if err != nil { @@ -85,7 +87,7 @@ func (b *SafeWebsocketServerBuilder) HandleFuncWebsocket(pattern string, subscri go internal.WritePump(c, h) go internal.ReadPump(c, h) - go writeFunc(h.Broadcast) + }) return b }