golangLearningSeries := part1

golangLearningSeries := part1

Table of contents

No heading

No headings in the article.

An Example of FAN-IN design pattern in go

func Funnel(sources ... <-chan int) <- chan int {

    dest := make(chan int)

    var wg sync.WaitGroup

    wg.Add(len(sources))

    for _,ch := range sources {

        go func(c <- chan int){
            defer wg.Done()

            for n:= range c{
                dest <-n
            }
        }(ch)
    }

    go func ()  {
        wg.Wait()
        close(dest)
    }()


return dest

}