aboutsummaryrefslogtreecommitdiff
path: root/objectstore/packed
diff options
context:
space:
mode:
authorGravatar Runxi Yu2026-03-22 18:00:22 +0000
committerGravatar Runxi Yu2026-03-22 18:02:10 +0000
commit4e43d7207bf91ee759c770de1bcc8562a71b4aca (patch)
tree2abf7592a88d733b2815fc214ba59c3b209d3fa7 /objectstore/packed
parentobjectstore{,/packed}: Document lifetime and integrity behavior (diff)
signatureNo signature
objectstore/*, repository, receivepack/service: don't take ownership of root
Diffstat (limited to 'objectstore/packed')
-rw-r--r--objectstore/packed/close.go8
-rw-r--r--objectstore/packed/store.go4
2 files changed, 3 insertions, 9 deletions
diff --git a/objectstore/packed/close.go b/objectstore/packed/close.go
index d83245c5..f810f42c 100644
--- a/objectstore/packed/close.go
+++ b/objectstore/packed/close.go
@@ -2,10 +2,11 @@ package packed
// Close releases mapped pack/index resources associated with the store.
//
+// Store borrows its root, so Close does not close it.
+//
// Repeated calls to Close are undefined behavior.
func (store *Store) Close() error {
store.stateMu.Lock()
- root := store.root
packs := store.packs
store.stateMu.Unlock()
store.idxMu.RLock()
@@ -32,10 +33,5 @@ func (store *Store) Close() error {
store.deltaCache.clear()
store.cacheMu.Unlock()
- err := root.Close()
- if err != nil && closeErr == nil {
- closeErr = err
- }
-
return closeErr
}
diff --git a/objectstore/packed/store.go b/objectstore/packed/store.go
index 58534709..61ccdb9a 100644
--- a/objectstore/packed/store.go
+++ b/objectstore/packed/store.go
@@ -11,10 +11,8 @@ import (
)
// Store reads Git objects from pack/index files under an objects/pack root.
-//
-// Store owns root and closes it in Close.
type Store struct {
- // root is the objects/pack capability used for all file access.
+ // root is the borrowed objects/pack capability used for all file access.
root *os.Root
// algo is the expected object ID algorithm for lookups.
algo objectid.Algorithm