From dcd0638e1795783905828e2d926cedabae14a1b9 Mon Sep 17 00:00:00 2001 From: Jack Chistyakov Date: Wed, 15 Jan 2025 15:36:45 -0800 Subject: [PATCH] Fix destroy handler race --- internal/socket/duplex.go | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/internal/socket/duplex.go b/internal/socket/duplex.go index db21bea..049e56e 100644 --- a/internal/socket/duplex.go +++ b/internal/socket/duplex.go @@ -161,15 +161,11 @@ func (dc *DuplexConnection) destroyTransport() { } func (dc *DuplexConnection) destroyHandler(err error) { - // TODO: optimize callback map - var callbacks []callback dc.messages.Range(func(_, value interface{}) bool { - callbacks = append(callbacks, value.(callback)) + cb := value.(callback) + cb.stopWithError(err) return true }) - for _, next := range callbacks { - next.stopWithError(err) - } } func (dc *DuplexConnection) destroyFragment() {