storage: release tx lock until finish using the readonly bytes

The backend will return read only bytes that are only vaild while
the tx is open. We should hold the lock until we get a full copy
by unmarshal.
This commit is contained in:
Xiang Li 2016-02-02 22:48:50 -08:00
parent d7f6ad0334
commit ae5161382b

View File

@ -324,7 +324,6 @@ func (s *watchableStore) syncWatchers() {
tx := s.store.b.BatchTx()
tx.Lock()
ks, vs := tx.UnsafeRange(keyBucketName, minBytes, maxBytes, 0)
tx.Unlock()
evs := []storagepb.Event{}
@ -351,6 +350,7 @@ func (s *watchableStore) syncWatchers() {
evs = append(evs, ev)
}
tx.Unlock()
for w, es := range newWatcherToEventMap(s.unsynced, evs) {
select {