27 lines
368 B
Go
27 lines
368 B
Go
|
package missinggo
|
||
|
|
||
|
import "sync"
|
||
|
|
||
|
type SynchronizedEvent struct {
|
||
|
mu sync.Mutex
|
||
|
e Event
|
||
|
}
|
||
|
|
||
|
func (me *SynchronizedEvent) Set() {
|
||
|
me.mu.Lock()
|
||
|
me.e.Set()
|
||
|
me.mu.Unlock()
|
||
|
}
|
||
|
|
||
|
func (me *SynchronizedEvent) Clear() {
|
||
|
me.mu.Lock()
|
||
|
me.e.Clear()
|
||
|
me.mu.Unlock()
|
||
|
}
|
||
|
|
||
|
func (me *SynchronizedEvent) C() <-chan struct{} {
|
||
|
me.mu.Lock()
|
||
|
defer me.mu.Unlock()
|
||
|
return me.e.C()
|
||
|
}
|