Index: go/src/infra/gae/libs/wrapper/memory/gkvlite_utils.go |
diff --git a/go/src/infra/gae/libs/wrapper/memory/gkvlite_utils.go b/go/src/infra/gae/libs/wrapper/memory/gkvlite_utils.go |
index a21c9bbad1354b14cdc2029ddcdeb74e630c434c..08b2b9b075ecfd5b73c37922d59e293cfb300d83 100644 |
--- a/go/src/infra/gae/libs/wrapper/memory/gkvlite_utils.go |
+++ b/go/src/infra/gae/libs/wrapper/memory/gkvlite_utils.go |
@@ -6,6 +6,7 @@ package memory |
import ( |
"bytes" |
+ "runtime" |
"sync" |
"github.com/luci/gkvlite" |
@@ -75,7 +76,11 @@ func newMemStore() *memStore { |
} |
func (ms *memStore) Snapshot() *memStore { |
- return (*memStore)((*gkvlite.Store)(ms).Snapshot()) |
+ ret := (*memStore)((*gkvlite.Store)(ms).Snapshot()) |
+ runtime.SetFinalizer((*gkvlite.Store)(ret), func(s *gkvlite.Store) { |
+ go s.Close() |
+ }) |
+ return ret |
} |
func (ms *memStore) MakePrivateCollection(cmp gkvlite.KeyCompare) *memCollection { |