all: use a custom sync package

The sync package is strongly tied to the runtime, so it's easier to
implement a new one. Besides, it's pretty big so it's better to replace
it.
This commit is contained in:
Ayke van Laethem
2018-09-15 18:51:51 +02:00
parent 94b18e2d79
commit c237633d34
3 changed files with 68 additions and 12 deletions
+16
View File
@@ -0,0 +1,16 @@
package sync
type Once struct {
done bool
m Mutex
}
func (o *Once) Do(f func()) {
o.m.Lock()
defer o.m.Unlock()
if o.done {
return
}
o.done = true
f()
}