initial import
This commit is contained in:
28
core/syncx/donechan.go
Normal file
28
core/syncx/donechan.go
Normal file
@@ -0,0 +1,28 @@
|
||||
package syncx
|
||||
|
||||
import (
|
||||
"sync"
|
||||
|
||||
"zero/core/lang"
|
||||
)
|
||||
|
||||
type DoneChan struct {
|
||||
done chan lang.PlaceholderType
|
||||
once sync.Once
|
||||
}
|
||||
|
||||
func NewDoneChan() *DoneChan {
|
||||
return &DoneChan{
|
||||
done: make(chan lang.PlaceholderType),
|
||||
}
|
||||
}
|
||||
|
||||
func (dc *DoneChan) Close() {
|
||||
dc.once.Do(func() {
|
||||
close(dc.done)
|
||||
})
|
||||
}
|
||||
|
||||
func (dc *DoneChan) Done() chan lang.PlaceholderType {
|
||||
return dc.done
|
||||
}
|
||||
Reference in New Issue
Block a user