Ai
1 Star 0 Fork 0

袁飞煌/common_engine

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
sync_call.go 412 Bytes
一键复制 编辑 原始数据 按行查看 历史
袁飞煌 提交于 2022-04-17 14:33 +08:00 . feat(common_engine): v1.0
package common_engine
import "sync"
type SyncCall struct {
once sync.Once
sig chan struct{}
err error
val interface{}
}
func (s *SyncCall) Start(fn func() (interface{}, error)) {
s.once.Do(func() {
defer s.Done()
val, err := fn()
s.val = val
s.err = err
})
}
func (s *SyncCall) Done() {
s.sig <- struct{}{}
}
func (s *SyncCall) Wait() (interface{}, error) {
<-s.sig
return s.val, s.err
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/coder_vector/common_engine.git
git@gitee.com:coder_vector/common_engine.git
coder_vector
common_engine
common_engine
master

搜索帮助