From eb8a13d8c2b72da5031db40335294f8b9c6dbe27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michele=20Pr=C3=A0?= Date: Mon, 16 Sep 2024 12:42:34 +0200 Subject: [PATCH 1/3] data race for streams map https://go.dev/doc/articles/race_detector --- internal/streams/streams.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/internal/streams/streams.go b/internal/streams/streams.go index ff0f5654c..7502c7d5d 100644 --- a/internal/streams/streams.go +++ b/internal/streams/streams.go @@ -61,6 +61,9 @@ func New(name string, source string) *Stream { return nil } + streamsMu.Lock() + defer streamsMu.Unlock() + stream := NewStream(source) streams[name] = stream return stream From 8128edad43ae63357d336faf0bb3030163d2efb0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michele=20Pr=C3=A0?= Date: Mon, 16 Sep 2024 16:42:22 +0200 Subject: [PATCH 2/3] Update streams.go --- internal/streams/streams.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/internal/streams/streams.go b/internal/streams/streams.go index 7502c7d5d..7930a6455 100644 --- a/internal/streams/streams.go +++ b/internal/streams/streams.go @@ -61,10 +61,11 @@ func New(name string, source string) *Stream { return nil } + stream := NewStream(source) + streamsMu.Lock() defer streamsMu.Unlock() - stream := NewStream(source) streams[name] = stream return stream } From 388c40808020bcc4e6ea1feb7c015591d4b95b8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michele=20Pr=C3=A0?= Date: Fri, 27 Sep 2024 18:14:41 +0200 Subject: [PATCH 3/3] defer used wisely --- internal/streams/streams.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/internal/streams/streams.go b/internal/streams/streams.go index 7930a6455..1bab036e7 100644 --- a/internal/streams/streams.go +++ b/internal/streams/streams.go @@ -64,9 +64,8 @@ func New(name string, source string) *Stream { stream := NewStream(source) streamsMu.Lock() - defer streamsMu.Unlock() - streams[name] = stream + streamsMu.Unlock() return stream }