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

import "sync"

// Holds an STM variable.
type Var struct {
	mu      sync.Mutex
	val     interface{}
	version uint64

	watchers map[*Tx]struct{}
}

// Returns a new STM variable.
func NewVar(val interface{}) *Var {
	return &Var{
		val:      val,
		watchers: make(map[*Tx]struct{}),
	}
}