aboutsummaryrefslogtreecommitdiff
path: root/var.go
blob: 05e86cf731919be1ff8daa44e757e5452fac34fc (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package stm

import "sync"

// A Var holds an STM variable.
type Var struct {
	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,
		watchers: make(map[*Tx]struct{}),
	}
}