diff options
Diffstat (limited to 'object/store/mix/mru.go')
| -rw-r--r-- | object/store/mix/mru.go | 74 |
1 files changed, 0 insertions, 74 deletions
diff --git a/object/store/mix/mru.go b/object/store/mix/mru.go deleted file mode 100644 index b7663125..00000000 --- a/object/store/mix/mru.go +++ /dev/null @@ -1,74 +0,0 @@ -package mix - -import "codeberg.org/lindenii/furgit/object/store" - -type backendNode struct { - backend objectstore.Store - prev *backendNode - next *backendNode -} - -//nolint:ireturn -func (mix *Mix) firstBackend() objectstore.Store { - mix.mu.RLock() - defer mix.mu.RUnlock() - - if mix.backendHead == nil { - return nil - } - - return mix.backendHead.backend -} - -//nolint:ireturn -func (mix *Mix) nextBackend(current objectstore.Store) objectstore.Store { - mix.mu.RLock() - defer mix.mu.RUnlock() - - node := mix.backendNodeByStore[current] - if node == nil || node.next == nil { - return nil - } - - return node.next.backend -} - -func (mix *Mix) touchBackend(backend objectstore.Store) { - if backend == nil { - return - } - - if !mix.mu.TryLock() { - return - } - defer mix.mu.Unlock() - - node := mix.backendNodeByStore[backend] - if node == nil || node == mix.backendHead { - return - } - - if node.prev != nil { - node.prev.next = node.next - } - - if node.next != nil { - node.next.prev = node.prev - } - - if mix.backendTail == node { - mix.backendTail = node.prev - } - - node.prev = nil - - node.next = mix.backendHead - if mix.backendHead != nil { - mix.backendHead.prev = node - } - - mix.backendHead = node - if mix.backendTail == nil { - mix.backendTail = node - } -} |
