core: do not hold the lock while seeking over persistent store
This commit is contained in:
parent
07cbe4d253
commit
dfe2c667e1
1 changed files with 2 additions and 3 deletions
|
@ -125,6 +125,7 @@ func (s *MemCachedStore) SeekAsync(ctx context.Context, key []byte, cutPrefix bo
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
ps := s.ps
|
||||||
s.mut.RUnlock()
|
s.mut.RUnlock()
|
||||||
// Sort memRes items for further comparison with ps items.
|
// Sort memRes items for further comparison with ps items.
|
||||||
sort.Slice(memRes, func(i, j int) bool {
|
sort.Slice(memRes, func(i, j int) bool {
|
||||||
|
@ -152,9 +153,8 @@ func (s *MemCachedStore) SeekAsync(ctx context.Context, key []byte, cutPrefix bo
|
||||||
|
|
||||||
// Seek over persistent store.
|
// Seek over persistent store.
|
||||||
go func() {
|
go func() {
|
||||||
s.mut.RLock()
|
|
||||||
var done bool
|
var done bool
|
||||||
s.ps.Seek(key, func(k, v []byte) {
|
ps.Seek(key, func(k, v []byte) {
|
||||||
if done {
|
if done {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -169,7 +169,6 @@ func (s *MemCachedStore) SeekAsync(ctx context.Context, key []byte, cutPrefix bo
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
s.mut.RUnlock()
|
|
||||||
close(data2)
|
close(data2)
|
||||||
}()
|
}()
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue