aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--objectstore/packed/close.go1
-rw-r--r--objectstore/packed/idx_lookup_candidates.go7
-rw-r--r--objectstore/packed/store.go2
3 files changed, 9 insertions, 1 deletions
diff --git a/objectstore/packed/close.go b/objectstore/packed/close.go
index f810f42c..f05a8573 100644
--- a/objectstore/packed/close.go
+++ b/objectstore/packed/close.go
@@ -3,6 +3,7 @@ package packed
// Close releases mapped pack/index resources associated with the store.
//
// Store borrows its root, so Close does not close it.
+// Close releases cached pack/index mappings retained by the store.
//
// Repeated calls to Close are undefined behavior.
func (store *Store) Close() error {
diff --git a/objectstore/packed/idx_lookup_candidates.go b/objectstore/packed/idx_lookup_candidates.go
index e69d07d7..a2de262a 100644
--- a/objectstore/packed/idx_lookup_candidates.go
+++ b/objectstore/packed/idx_lookup_candidates.go
@@ -22,7 +22,12 @@ type candidateSnapshot struct {
candidateByPack map[string]packCandidate
}
-// Refresh rescans objects/pack and atomically installs a fresh candidate list.
+// Refresh rescans objects/pack and atomically installs a fresh candidate list
+// for future lookups.
+//
+// Refresh does not invalidate existing readers. Cached pack/index mappings,
+// including ones for previously visible candidates, may be retained until
+// Close.
func (store *Store) Refresh() error {
store.refreshMu.Lock()
defer store.refreshMu.Unlock()
diff --git a/objectstore/packed/store.go b/objectstore/packed/store.go
index 61ccdb9a..fc3f57d4 100644
--- a/objectstore/packed/store.go
+++ b/objectstore/packed/store.go
@@ -11,6 +11,8 @@ import (
)
// Store reads Git objects from pack/index files under an objects/pack root.
+//
+// Store borrows its root. Cached pack/index mappings are retained until Close.
type Store struct {
// root is the borrowed objects/pack capability used for all file access.
root *os.Root