core/rawdb: wait for background freezing to exit when closing freezer (#22878)

This commit is contained in:
Martin Holst Swende
2021-05-18 01:30:01 +02:00
committed by GitHub
parent 67e7f61af7
commit bb9f9ccf4f
2 changed files with 8 additions and 1 deletions

View File

@ -84,6 +84,7 @@ type freezer struct {
trigger chan chan struct{} // Manual blocking freeze trigger, test determinism
quit chan struct{}
wg sync.WaitGroup
closeOnce sync.Once
}
@ -145,6 +146,8 @@ func (f *freezer) Close() error {
var errs []error
f.closeOnce.Do(func() {
close(f.quit)
// Wait for any background freezing to stop
f.wg.Wait()
for _, table := range f.tables {
if err := table.Close(); err != nil {
errs = append(errs, err)