From f7330300e912072fe8a9ec9ec372870f9ed83b03 Mon Sep 17 00:00:00 2001 From: demo Date: Tue, 26 May 2026 18:24:16 -0400 Subject: fix: release semaphore at the proper time --- classic.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'classic.go') diff --git a/classic.go b/classic.go index bb22b0b..0b2bfa8 100644 --- a/classic.go +++ b/classic.go @@ -40,12 +40,13 @@ loop: numPendingSends++ wg.Go(func() { + sema <- struct{}{} + defer func() { <-sema }() + select { case <-ctx.Done(): return - case sema <- struct{}{}: - defer func() { <-sema }() - worklist <- getBatch(u) + case worklist <- getBatch(u): } }) } -- cgit v1.2.3