Use read lock in ready#check

This commit is contained in:
Ted Yu 2019-04-18 14:00:42 -07:00 committed by Ted Yu
parent cee320a809
commit 04a7b50a02

View File

@ -1245,7 +1245,7 @@ type ready struct {
} }
func newReady() *ready { func newReady() *ready {
return &ready{c: sync.NewCond(&sync.Mutex{})} return &ready{c: sync.NewCond(&sync.RWMutex{})}
} }
func (r *ready) wait() { func (r *ready) wait() {
@ -1259,8 +1259,9 @@ func (r *ready) wait() {
// TODO: Make check() function more sophisticated, in particular // TODO: Make check() function more sophisticated, in particular
// allow it to behave as "waitWithTimeout". // allow it to behave as "waitWithTimeout".
func (r *ready) check() bool { func (r *ready) check() bool {
r.c.L.Lock() rwMutex := r.c.L.(*sync.RWMutex)
defer r.c.L.Unlock() rwMutex.RLock()
defer rwMutex.RUnlock()
return r.ok return r.ok
} }