123456789101112131415161718192021222324252627282930 |
- package syncx
- import (
- "sync/atomic"
- "time"
- )
- type AtomicDuration int64
- func NewAtomicDuration() *AtomicDuration {
- return new(AtomicDuration)
- }
- func ForAtomicDuration(val time.Duration) *AtomicDuration {
- d := NewAtomicDuration()
- d.Set(val)
- return d
- }
- func (d *AtomicDuration) CompareAndSwap(old, val time.Duration) bool {
- return atomic.CompareAndSwapInt64((*int64)(d), int64(old), int64(val))
- }
- func (d *AtomicDuration) Load() time.Duration {
- return time.Duration(atomic.LoadInt64((*int64)(d)))
- }
- func (d *AtomicDuration) Set(val time.Duration) {
- atomic.StoreInt64((*int64)(d), int64(val))
- }
|