summaryrefslogtreecommitdiff
path: root/src/pkg/sync/once.go
diff options
context:
space:
mode:
authorOndřej Surý <ondrej@sury.org>2011-08-03 17:26:15 +0200
committerOndřej Surý <ondrej@sury.org>2011-08-03 17:31:49 +0200
commitb757d264230d65f988e08158e096a09497d39eb4 (patch)
treee20ec608a2ec8ebf603fa7aa060eb9723c4780b9 /src/pkg/sync/once.go
parent5976088995f5c0d0bcada7d491fda4b6245e54e0 (diff)
downloadgolang-b757d264230d65f988e08158e096a09497d39eb4.tar.gz
Imported Upstream version 2011.07.29
Diffstat (limited to 'src/pkg/sync/once.go')
-rw-r--r--src/pkg/sync/once.go6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/pkg/sync/once.go b/src/pkg/sync/once.go
index 447b71dcb..04b714a3e 100644
--- a/src/pkg/sync/once.go
+++ b/src/pkg/sync/once.go
@@ -11,7 +11,7 @@ import (
// Once is an object that will perform exactly one action.
type Once struct {
m Mutex
- done int32
+ done uint32
}
// Do calls the function f if and only if the method is being called for the
@@ -30,7 +30,7 @@ type Once struct {
// Do to be called, it will deadlock.
//
func (o *Once) Do(f func()) {
- if atomic.AddInt32(&o.done, 0) == 1 {
+ if atomic.LoadUint32(&o.done) == 1 {
return
}
// Slow-path.
@@ -38,6 +38,6 @@ func (o *Once) Do(f func()) {
defer o.m.Unlock()
if o.done == 0 {
f()
- atomic.CompareAndSwapInt32(&o.done, 0, 1)
+ atomic.CompareAndSwapUint32(&o.done, 0, 1)
}
}