From bbcb2aadd77d362849993806e5c3900b11a1502e Mon Sep 17 00:00:00 2001 From: Matt Joiner Date: Mon, 4 Nov 2019 15:52:42 +1100 Subject: Remove global lock --- var.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'var.go') diff --git a/var.go b/var.go index 2d0cb21..51160e2 100644 --- a/var.go +++ b/var.go @@ -1,6 +1,7 @@ package stm import ( + "sync" "sync/atomic" "unsafe" ) @@ -8,7 +9,8 @@ import ( // Holds an STM variable. type Var struct { state *varSnapshot - watchers map[*Tx]struct{} + watchers sync.Map + mu sync.Mutex } func (v *Var) addr() *unsafe.Pointer { @@ -35,6 +37,5 @@ func NewVar(val interface{}) *Var { state: &varSnapshot{ val: val, }, - watchers: make(map[*Tx]struct{}), } } -- cgit v1.2.3