diff options
author | Matt Joiner <anacrolix@gmail.com> | 2019-10-23 18:27:11 +1100 |
---|---|---|
committer | Matt Joiner <anacrolix@gmail.com> | 2019-10-23 18:27:11 +1100 |
commit | 5d3a8dccf84bcdccb5e51eec11db732eb1911277 (patch) | |
tree | 3bb008720e99e1f6e0e8d5b53a4f6e7100a49ccb /var.go | |
parent | Improve comment on Tx.verify (diff) | |
download | stm-5d3a8dccf84bcdccb5e51eec11db732eb1911277.tar.gz stm-5d3a8dccf84bcdccb5e51eec11db732eb1911277.tar.xz |
Register transaction condition with each read Var only
Diffstat (limited to 'var.go')
-rw-r--r-- | var.go | 12 |
1 files changed, 8 insertions, 4 deletions
@@ -4,12 +4,16 @@ import "sync" // A Var holds an STM variable. type Var struct { - val interface{} - version uint64 - mu sync.Mutex + val interface{} + version uint64 + mu sync.Mutex + watchers map[*Tx]struct{} } // NewVar returns a new STM variable. func NewVar(val interface{}) *Var { - return &Var{val: val} + return &Var{ + val: val, + watchers: make(map[*Tx]struct{}), + } } |