(dir string, store *DiskStore)
| 421 | } |
| 422 | |
| 423 | func (bm *bcacheManager) reBuildCacheKeys(dir string, store *DiskStore) { |
| 424 | if _, err := os.Stat(dir); err != nil { |
| 425 | log.LogErrorf("cache dir %s is not exists", dir) |
| 426 | return |
| 427 | } |
| 428 | log.LogDebugf("reBuildCacheKeys(%s)", dir) |
| 429 | c := make(chan keyPair) |
| 430 | keyPrefix := filepath.Join(dir, Basedir) |
| 431 | go func() { |
| 432 | filepath.Walk(dir, bm.walker(c, keyPrefix, true)) |
| 433 | close(c) |
| 434 | }() |
| 435 | |
| 436 | for value := range c { |
| 437 | bm.Lock() |
| 438 | element := bm.lrulist.PushBack(value.it) |
| 439 | bm.bcacheKeys[value.key] = element |
| 440 | bm.Unlock() |
| 441 | log.LogDebugf("updateStat(%v)", value.it.size) |
| 442 | store.updateStat(value.it.size) |
| 443 | } |
| 444 | } |
| 445 | |
| 446 | func (bm *bcacheManager) walker(c chan keyPair, prefix string, initial bool) filepath.WalkFunc { |
| 447 | return func(path string, info os.FileInfo, err error) error { |
no test coverage detected