From 21ed0fa92453e671b4c8b255b0071aae138e2849 Mon Sep 17 00:00:00 2001 From: Roman Date: Sat, 2 May 2026 13:38:47 +0000 Subject: [PATCH] fix(handler): prevent panic on multiple Close calls --- handler_js.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/handler_js.go b/handler_js.go index 54f1fdf4..94787822 100644 --- a/handler_js.go +++ b/handler_js.go @@ -7,6 +7,7 @@ import ( "fmt" "io" "net/http" + "sync" "syscall/js" "github.com/syumai/workers/internal/jshttp" @@ -17,6 +18,7 @@ import ( var ( httpHandler http.Handler doneCh = make(chan struct{}) + doneOnce sync.Once ) func init() { @@ -52,7 +54,7 @@ type appCloser struct { } func (c *appCloser) Close() error { - defer close(doneCh) + doneOnce.Do(func() { close(doneCh) }) return c.ReadCloser.Close() }