mirror of
https://github.com/octoleo/restic.git
synced 2024-12-22 02:48:55 +00:00
cache: Fix recheck logic, remove channel from inProgress
This commit is contained in:
parent
19725954ee
commit
5971650f77
19
internal/cache/backend.go
vendored
19
internal/cache/backend.go
vendored
@ -107,16 +107,17 @@ func (b *Backend) cacheFile(ctx context.Context, h restic.Handle) error {
|
||||
}
|
||||
|
||||
// test again, maybe the file was cached in the meantime
|
||||
if b.Cache.Has(h) {
|
||||
return nil
|
||||
}
|
||||
if !b.Cache.Has(h) {
|
||||
|
||||
err := b.Backend.Load(ctx, h, 0, 0, func(rd io.Reader) error {
|
||||
return b.Cache.Save(h, rd)
|
||||
})
|
||||
if err != nil {
|
||||
// try to remove from the cache, ignore errors
|
||||
_ = b.Cache.Remove(h)
|
||||
// nope, it's still not in the cache, pull it from the repo and save it
|
||||
|
||||
err := b.Backend.Load(ctx, h, 0, 0, func(rd io.Reader) error {
|
||||
return b.Cache.Save(h, rd)
|
||||
})
|
||||
if err != nil {
|
||||
// try to remove from the cache, ignore errors
|
||||
_ = b.Cache.Remove(h)
|
||||
}
|
||||
}
|
||||
|
||||
// signal other waiting goroutines that the file may now be cached
|
||||
|
Loading…
Reference in New Issue
Block a user