From 5cfec0f2ef870a33488011728847d1227f30918d Mon Sep 17 00:00:00 2001 From: XoxJlopeZi4BB Date: Wed, 9 Jul 2025 00:42:50 +0400 Subject: [PATCH] Update multireader.go more description --- multireader.go | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/multireader.go b/multireader.go index 8c60ffb..511aeec 100644 --- a/multireader.go +++ b/multireader.go @@ -15,13 +15,13 @@ func tickReader(sem chan struct{}, ticker *time.Ticker, s string) io.Reader { r, w := io.Pipe() go func() { for { - sem <- struct{}{} + sem <- struct{}{} // acquire a ticket, possibly waiting for it select { case t := <-ticker.C: fmt.Fprintf(w, "%s with %v\n", s, t) default: // try to comment this and then run :) } - <-sem + <-sem // add a ticket to the semaphore } }() return r @@ -45,7 +45,10 @@ func tickToReader(semaphore chan struct{}, v tick) (io.Reader, error) { func main() { var ( wg sync.WaitGroup - semaphore = make(chan struct{}, 1) + semaphore = make( + chan struct{}, + 1, // only one goroutine can do its thing + ) ) var tickers = []tick{