From f3d6daa29eccbaeb7b9b1709b4ddffe010c00bd0 Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Thu, 18 Jan 2024 01:34:32 -0600 Subject: fix paths Signed-off-by: Jeff Carr --- chan.go | 118 ++++++++++++++++++++++++++++++++-------------------------------- 1 file changed, 59 insertions(+), 59 deletions(-) (limited to 'chan.go') diff --git a/chan.go b/chan.go index 0956c48..2385760 100644 --- a/chan.go +++ b/chan.go @@ -7,11 +7,11 @@ package debugger import ( // "regexp" // "go.wit.com/gui/toolkit" - "sync" - "runtime" "github.com/sourcegraph/conc" - "github.com/sourcegraph/conc/stream" "github.com/sourcegraph/conc/panics" + "github.com/sourcegraph/conc/stream" + "runtime" + "sync" "go.wit.com/log" ) @@ -60,65 +60,65 @@ func ExampleCatcher(f func()) { } func mapStream( - in chan int, - out chan int, - f func(int) int, + in chan int, + out chan int, + f func(int) int, ) { - tasks := make(chan func()) - taskResults := make(chan chan int) - - // Worker goroutines - var workerWg sync.WaitGroup - for i := 0; i < 10; i++ { - workerWg.Add(1) - go func() { - defer workerWg.Done() - for task := range tasks { - task() - } - }() - } - - // Ordered reader goroutines - var readerWg sync.WaitGroup - readerWg.Add(1) - go func() { - defer readerWg.Done() - for result := range taskResults { - item := <-result - out <- item - } - }() - - // Feed the workers with tasks - for elem := range in { - resultCh := make(chan int, 1) - taskResults <- resultCh - tasks <- func() { - resultCh <- f(elem) - } - } - - // We've exhausted input. - // Wait for everything to finish - close(tasks) - workerWg.Wait() - close(taskResults) - readerWg.Wait() + tasks := make(chan func()) + taskResults := make(chan chan int) + + // Worker goroutines + var workerWg sync.WaitGroup + for i := 0; i < 10; i++ { + workerWg.Add(1) + go func() { + defer workerWg.Done() + for task := range tasks { + task() + } + }() + } + + // Ordered reader goroutines + var readerWg sync.WaitGroup + readerWg.Add(1) + go func() { + defer readerWg.Done() + for result := range taskResults { + item := <-result + out <- item + } + }() + + // Feed the workers with tasks + for elem := range in { + resultCh := make(chan int, 1) + taskResults <- resultCh + tasks <- func() { + resultCh <- f(elem) + } + } + + // We've exhausted input. + // Wait for everything to finish + close(tasks) + workerWg.Wait() + close(taskResults) + readerWg.Wait() } func mapStream2( - in chan int, - out chan int, - f func(int) int, + in chan int, + out chan int, + f func(int) int, ) { - s := stream.New().WithMaxGoroutines(10) - for elem := range in { - elem := elem - s.Go(func() stream.Callback { - res := f(elem) - return func() { out <- res } - }) - } - s.Wait() + s := stream.New().WithMaxGoroutines(10) + for elem := range in { + elem := elem + s.Go(func() stream.Callback { + res := f(elem) + return func() { out <- res } + }) + } + s.Wait() } -- cgit v1.2.3