From 53b98cfddef7afcb79d8a1b35fb186b58426c1d4 Mon Sep 17 00:00:00 2001 From: Chris Wendt Date: Wed, 8 Jun 2022 01:35:20 -0600 Subject: use generic atomic --- var.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'var.go') diff --git a/var.go b/var.go index 3f43096..ec85996 100644 --- a/var.go +++ b/var.go @@ -2,18 +2,19 @@ package stm import ( "sync" - "sync/atomic" + + "github.com/alecthomas/atomic" ) // Holds an STM variable. type Var struct { - value atomic.Value + value atomic.Value[VarValue] watchers sync.Map mu sync.Mutex } func (v *Var) changeValue(new interface{}) { - old := v.value.Load().(VarValue) + old := v.value.Load() newVarValue := old.Set(new) v.value.Store(newVarValue) if old.Changed(newVarValue) { @@ -34,7 +35,7 @@ func (v *Var) wakeWatchers(new VarValue) { } } tx.mu.Unlock() - return !v.value.Load().(VarValue).Changed(new) + return !v.value.Load().Changed(new) }) } -- cgit v1.2.3