24 lines
408 B
Go
24 lines
408 B
Go
|
package xsync
|
||
|
|
||
|
import (
|
||
|
"sync/atomic"
|
||
|
)
|
||
|
|
||
|
// Int64 represents an atomic int64.
|
||
|
type Int64 struct {
|
||
|
// We do not use atomic.Load/StoreInt64 since it does not
|
||
|
// work on 32 bit computers but we need 64 bit integers.
|
||
|
i atomic.Value
|
||
|
}
|
||
|
|
||
|
// Load loads the int64.
|
||
|
func (v *Int64) Load() int64 {
|
||
|
i, _ := v.i.Load().(int64)
|
||
|
return i
|
||
|
}
|
||
|
|
||
|
// Store stores the int64.
|
||
|
func (v *Int64) Store(i int64) {
|
||
|
v.i.Store(i)
|
||
|
}
|