From 95c98d1ab7bb8eb06811d10f1eda3257dc8aad9c Mon Sep 17 00:00:00 2001 From: Jason Wilder Date: Mon, 27 Jul 2015 15:30:22 -0600 Subject: [PATCH] Fix data race in WaitForDataChanged --- meta/store.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/meta/store.go b/meta/store.go index ef8646c466..0eea28ef8e 100644 --- a/meta/store.go +++ b/meta/store.go @@ -383,11 +383,15 @@ func (s *Store) Close() error { // WaitForDataChanged will block the current goroutine until the metastore index has // be updated. func (s *Store) WaitForDataChanged() error { + s.mu.RLock() + changed := s.changed + s.mu.RUnlock() + for { select { case <-s.closing: return errors.New("closing") - case <-s.changed: + case <-changed: return nil } }