Albirew/nyaa-pantsu
Archivé
1
0
Bifurcation 0
Ce dépôt a été archivé le 2022-05-07. Vous pouvez voir ses fichiers ou le cloner, mais pas ouvrir de ticket ou de demandes d'ajout, ni soumettre de changements.
nyaa-pantsu/vendor/github.com/anacrolix/missinggo/chancond.go
akuma06 a41f938cec Add Godep support (#758)
As we have seen, dependencies version can prevent the build. We should
user lock versions on dependencies that we know work:
* Packages are vendored
* Add Godep support
* Added addtional install step in readme
* Fix travis build error
2017-05-26 13:07:22 +02:00

36 lignes
493 o
Go

package missinggo
import "sync"
type ChanCond struct {
mu sync.Mutex
ch chan struct{}
}
func (me *ChanCond) Wait() <-chan struct{} {
me.mu.Lock()
defer me.mu.Unlock()
if me.ch == nil {
me.ch = make(chan struct{})
}
return me.ch
}
func (me *ChanCond) Signal() {
me.mu.Lock()
defer me.mu.Unlock()
select {
case me.ch <- struct{}{}:
default:
}
}
func (me *ChanCond) Broadcast() {
me.mu.Lock()
defer me.mu.Unlock()
if me.ch == nil {
return
}
close(me.ch)
me.ch = nil
}