aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md2
-rw-r--r--external_test.go12
-rw-r--r--rate/ratelimit.go8
3 files changed, 11 insertions, 11 deletions
diff --git a/README.md b/README.md
index 8073b9d..ba770d9 100644
--- a/README.md
+++ b/README.md
@@ -89,7 +89,7 @@ type foo struct {
}
f := foo{i: stm.NewVar[int](2)}
stm.Atomically(func(tx *stm.Tx) {
- i := f.i.Get(tx).(int)
+ i := f.i.Get(tx)
i = 7
f.i.Set(tx, i)
})
diff --git a/external_test.go b/external_test.go
index 201712d..a56aeee 100644
--- a/external_test.go
+++ b/external_test.go
@@ -78,14 +78,14 @@ func BenchmarkThunderingHerd(b *testing.B) {
}()
}
go func() {
- for stm.Atomically(func(tx *stm.Tx) interface{} {
+ for stm.Atomically(func(tx *stm.Tx) bool {
if done.Get(tx) {
return false
}
tx.Assert(tokens.Get(tx) < maxTokens)
tokens.Set(tx, tokens.Get(tx)+1)
return true
- }).(bool) {
+ }) {
}
}()
stm.Atomically(stm.VoidOperation(func(tx *stm.Tx) {
@@ -118,18 +118,18 @@ func BenchmarkInvertedThunderingHerd(b *testing.B) {
}()
}
go func() {
- for stm.Atomically(func(tx *stm.Tx) interface{} {
+ for stm.Atomically(func(tx *stm.Tx) bool {
if done.Get(tx) {
return false
}
tx.Assert(tokens.Get(tx) < maxTokens)
tokens.Set(tx, tokens.Get(tx)+1)
return true
- }).(bool) {
+ }) {
}
}()
go func() {
- for stm.Atomically(func(tx *stm.Tx) interface{} {
+ for stm.Atomically(func(tx *stm.Tx) bool {
tx.Assert(tokens.Get(tx) > 0)
tokens.Set(tx, tokens.Get(tx)-1)
pending.Get(tx).Range(func(i interface{}) bool {
@@ -141,7 +141,7 @@ func BenchmarkInvertedThunderingHerd(b *testing.B) {
return true
})
return !done.Get(tx)
- }).(bool) {
+ }) {
}
}()
stm.Atomically(stm.VoidOperation(func(tx *stm.Tx) {
diff --git a/rate/ratelimit.go b/rate/ratelimit.go
index 6645e04..f521f66 100644
--- a/rate/ratelimit.go
+++ b/rate/ratelimit.go
@@ -77,9 +77,9 @@ func (rl *Limiter) Allow() bool {
}
func (rl *Limiter) AllowN(n numTokens) bool {
- return stm.Atomically(func(tx *stm.Tx) interface{} {
+ return stm.Atomically(func(tx *stm.Tx) bool {
return rl.takeTokens(tx, n)
- }).(bool)
+ })
}
func (rl *Limiter) AllowStm(tx *stm.Tx) bool {
@@ -105,7 +105,7 @@ func (rl *Limiter) Wait(ctx context.Context) error {
func (rl *Limiter) WaitN(ctx context.Context, n int) error {
ctxDone, cancel := stmutil.ContextDoneVar(ctx)
defer cancel()
- if err := stm.Atomically(func(tx *stm.Tx) interface{} {
+ if err := stm.Atomically(func(tx *stm.Tx) error {
if ctxDone.Get(tx) {
return ctx.Err()
}
@@ -123,7 +123,7 @@ func (rl *Limiter) WaitN(ctx context.Context, n int) error {
tx.Retry()
panic("unreachable")
}); err != nil {
- return err.(error)
+ return err
}
return nil