diff options
Diffstat (limited to 'src/stm.go')
-rw-r--r-- | src/stm.go | 6 |
1 files changed, 3 insertions, 3 deletions
@@ -346,7 +346,7 @@ retry: } // AtomicGet is a helper function that atomically reads a value. -func AtomicGet[T any](v *Var[T]) T { +func Deref[T any](v *Var[T]) T { return v.value.Load().Get().(T) } @@ -405,7 +405,7 @@ func VoidOperation(f func(*Tx)) Operation[struct{}] { } } -func AtomicModify[T any](v *Var[T], f func(T) T) { +func Swap[T any](v *Var[T], f func(T) T) { Atomically(VoidOperation(func(tx *Tx) { v.Set(tx, f(v.Get(tx))) })) @@ -1033,7 +1033,7 @@ func NewLimiter(rate Limit, burst numTokens) *Limiter { func (rl *Limiter) tokenGenerator(interval time.Duration) { for { - lastAdd := AtomicGet(rl.lastAdd) + lastAdd := Deref(rl.lastAdd) time.Sleep(time.Until(lastAdd.Add(interval))) now := time.Now() available := numTokens(now.Sub(lastAdd) / interval) |