diff options
author | Ondřej Surý <ondrej@sury.org> | 2011-08-03 17:26:15 +0200 |
---|---|---|
committer | Ondřej Surý <ondrej@sury.org> | 2011-08-03 17:31:49 +0200 |
commit | b757d264230d65f988e08158e096a09497d39eb4 (patch) | |
tree | e20ec608a2ec8ebf603fa7aa060eb9723c4780b9 /src/pkg/sync/once.go | |
parent | 5976088995f5c0d0bcada7d491fda4b6245e54e0 (diff) | |
download | golang-b757d264230d65f988e08158e096a09497d39eb4.tar.gz |
Imported Upstream version 2011.07.29
Diffstat (limited to 'src/pkg/sync/once.go')
-rw-r--r-- | src/pkg/sync/once.go | 6 |
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) } } |