INNER CODE UNIT · Go

Merge

spegel-org/spegel · internal/channel/channel.go:7

func Merge[T any](cs ...<-chan T) <-chan T {
	var wg sync.WaitGroup
	out := make(chan T)

	output := func(c <-chan T) {
		for n := range c {
			out <- n
		}
		wg.Done()
	}
	wg.Add(len(cs))
	for _, c := range cs {
		go output(c)
	}

	go func() {
		wg.Wait()
		close(out)

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…