From c0ede237be948532a9113d6db072a7847d02c890 Mon Sep 17 00:00:00 2001 From: Matt Joiner Date: Wed, 23 Oct 2019 18:30:55 +1100 Subject: Get rid of globalCond --- funcs.go | 5 +---- global.go | 1 - tx.go | 4 ++-- 3 files changed, 3 insertions(+), 7 deletions(-) diff --git a/funcs.go b/funcs.go index 2170004..7b5df38 100644 --- a/funcs.go +++ b/funcs.go @@ -21,10 +21,7 @@ retry: goto retry } // commit the write log and broadcast that variables have changed - if len(tx.writes) > 0 { - tx.commit() - globalCond.Broadcast() - } + tx.commit() globalLock.Unlock() } diff --git a/global.go b/global.go index 479864e..bc5f18a 100644 --- a/global.go +++ b/global.go @@ -5,4 +5,3 @@ import "sync" // The globalLock serializes transaction verification/committal. globalCond is // used to signal that at least one Var has changed. var globalLock sync.Mutex -var globalCond = sync.NewCond(&globalLock) diff --git a/tx.go b/tx.go index a17cc13..45f8006 100644 --- a/tx.go +++ b/tx.go @@ -39,7 +39,7 @@ func (tx *Tx) commit() { // wait blocks until another transaction modifies any of the Vars read by tx. func (tx *Tx) wait() { - globalCond.L.Lock() + globalLock.Lock() for v := range tx.reads { v.watchers[tx] = struct{}{} } @@ -49,7 +49,7 @@ func (tx *Tx) wait() { for v := range tx.reads { delete(v.watchers, tx) } - globalCond.L.Unlock() + globalLock.Unlock() } // Get returns the value of v as of the start of the transaction. -- cgit v1.2.3