From 47d88482df82217af6f7a2ecdf6631c3f846f82b Mon Sep 17 00:00:00 2001 From: Kyle Carberry Date: Tue, 7 Mar 2023 03:12:26 +0000 Subject: [PATCH] chore: ensure pubsub messages are delivered in order for in-memory variant PostgreSQL provides this guarantee, which led to some flakes in tests. See: https://github.com/coder/coder/actions/runs/4350034299/jobs/7600478096 --- coderd/database/pubsub_memory.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/coderd/database/pubsub_memory.go b/coderd/database/pubsub_memory.go index de5a940414d6c..4306ec10fb000 100644 --- a/coderd/database/pubsub_memory.go +++ b/coderd/database/pubsub_memory.go @@ -46,9 +46,16 @@ func (m *memoryPubsub) Publish(event string, message []byte) error { if !ok { return nil } + var wg sync.WaitGroup for _, listener := range listeners { - go listener(context.Background(), message) + wg.Add(1) + listener := listener + go func() { + defer wg.Done() + listener(context.Background(), message) + }() } + wg.Wait() return nil }