diff options
Diffstat (limited to 'objectstore/packed/store.go')
| -rw-r--r-- | objectstore/packed/store.go | 65 |
1 files changed, 0 insertions, 65 deletions
diff --git a/objectstore/packed/store.go b/objectstore/packed/store.go index 2da48dff..000e04f2 100644 --- a/objectstore/packed/store.go +++ b/objectstore/packed/store.go @@ -49,69 +49,4 @@ type Store struct { closed bool } -const defaultDeltaCacheMaxBytes = 32 << 20 - var _ objectstore.Store = (*Store)(nil) - -// New creates a packed-object store rooted at an objects/pack directory. -func New(root *os.Root, algo objectid.Algorithm) (*Store, error) { - if algo.Size() == 0 { - return nil, objectid.ErrInvalidAlgorithm - } - - return &Store{ - root: root, - algo: algo, - candidateByPack: make(map[string]packCandidate), - candidateNodeByPack: make(map[string]*packCandidateNode), - idxByPack: make(map[string]*idxFile), - packs: make(map[string]*packFile), - deltaCache: newDeltaCache(defaultDeltaCacheMaxBytes), - }, nil -} - -// Close releases mapped pack/index resources associated with the store. -func (store *Store) Close() error { - store.stateMu.Lock() - - if store.closed { - store.stateMu.Unlock() - - return nil - } - - store.closed = true - root := store.root - packs := store.packs - store.stateMu.Unlock() - store.idxMu.RLock() - indexes := store.idxByPack - store.idxMu.RUnlock() - - var closeErr error - - for _, pack := range packs { - err := pack.close() - if err != nil && closeErr == nil { - closeErr = err - } - } - - for _, index := range indexes { - err := index.close() - if err != nil && closeErr == nil { - closeErr = err - } - } - - store.cacheMu.Lock() - store.deltaCache.clear() - store.cacheMu.Unlock() - - err := root.Close() - if err != nil && closeErr == nil { - closeErr = err - } - - return closeErr -} |
