Indexer: Reset file lookup table if count changes #568
This commit is contained in:
parent
2bad5b3cdd
commit
068d38820f
|
@ -11,6 +11,7 @@ import (
|
||||||
|
|
||||||
// Files represents a list of already indexed file names and their unix modification timestamps.
|
// Files represents a list of already indexed file names and their unix modification timestamps.
|
||||||
type Files struct {
|
type Files struct {
|
||||||
|
count int
|
||||||
files query.FileMap
|
files query.FileMap
|
||||||
mutex sync.RWMutex
|
mutex sync.RWMutex
|
||||||
}
|
}
|
||||||
|
@ -44,10 +45,24 @@ func (m *Files) Init() error {
|
||||||
return fmt.Errorf("%s (query indexed files)", err.Error())
|
return fmt.Errorf("%s (query indexed files)", err.Error())
|
||||||
} else {
|
} else {
|
||||||
m.files = files
|
m.files = files
|
||||||
|
m.count = len(files)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Done should be called after all files have been processed.
|
||||||
|
func (m *Files) Done() {
|
||||||
|
if (len(m.files) - m.count) == 0 {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
m.mutex.Lock()
|
||||||
|
defer m.mutex.Unlock()
|
||||||
|
|
||||||
|
m.count = 0
|
||||||
|
m.files = make(query.FileMap)
|
||||||
|
}
|
||||||
|
|
||||||
// Ignore tests of a file requires indexing, file name must be relative to the originals path.
|
// Ignore tests of a file requires indexing, file name must be relative to the originals path.
|
||||||
func (m *Files) Ignore(fileName, fileRoot string, modTime time.Time, rescan bool) bool {
|
func (m *Files) Ignore(fileName, fileRoot string, modTime time.Time, rescan bool) bool {
|
||||||
timestamp := modTime.Unix()
|
timestamp := modTime.Unix()
|
||||||
|
|
|
@ -102,6 +102,8 @@ func (ind *Index) Start(opt IndexOptions) fs.Done {
|
||||||
log.Errorf("index: %s", err)
|
log.Errorf("index: %s", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
defer ind.files.Done()
|
||||||
|
|
||||||
filesIndexed := 0
|
filesIndexed := 0
|
||||||
ignore := fs.NewIgnoreList(fs.IgnoreFile, true, false)
|
ignore := fs.NewIgnoreList(fs.IgnoreFile, true, false)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue