From fd02f73708e5e77dc5b7e1d48fb0b1c6fe2b8bb3 Mon Sep 17 00:00:00 2001 From: Kyle Carberry Date: Mon, 6 Mar 2023 22:36:25 -0600 Subject: [PATCH] chore: ensure pubsub messages are delivered in order for in-memory variant (#6474) 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 de5a940414..4306ec10fb 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 }