• 此项目
    • 正在载入...
  • 登录

mmm-go / gocomm · 文件

转到一个项目

GitLab

  • 转到群组
  • 项目
  • 活动
  • 文件
  • 提交
  • 管道 0
  • 构建 0
  • 图表
  • 里程碑
  • 问题 0
  • 合并请求 0
  • 成员
  • 标记
  • 维基
  • 派生
  • 网络
  • 创建新的问题
  • gocomm
  • sync
  • fanout
  • fanout.go
  • gocomm
    c87640c8
    yangfu 在
    2019-09-20 15:35:14 +0800
    提交 浏览文件
fanout.go 377 字节
原文件 审查 历史 永久链接
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
package fanout

import "sync"

func Merge(size int,cs ...<-chan interface{})<-chan interface{}{
	var wg sync.WaitGroup
	outChan :=make(chan interface{},size)

	outputFunc :=func(c <-chan interface{}){
		for n:=range c{
			outChan <-n
		}
		wg.Done()
	}
	wg.Add(len(cs))
	for _,c :=range cs{
		go outputFunc(c)
	}
	go func(){
		wg.Wait()
		close(outChan)
	}()
	return outChan
}