summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Milde <daniel@milde.cz>2021-02-16 20:14:24 +0100
committerDaniel Milde <daniel@milde.cz>2021-02-16 20:16:54 +0100
commit3d47ab68dd0743df1287f6953e5c297f9d8b7a5f (patch)
tree5d30d93960edc8b7e8cbf31967efa0cef1d352e0
parent629c9ccc484d9085421792eb5efbc1fa94054747 (diff)
fixed data race in flag propagationv4.6.2
-rw-r--r--analyze/dir.go9
-rw-r--r--analyze/file.go7
2 files changed, 7 insertions, 9 deletions
diff --git a/analyze/dir.go b/analyze/dir.go
index b363285..865bb0c 100644
--- a/analyze/dir.go
+++ b/analyze/dir.go
@@ -87,16 +87,7 @@ func processDir(path string, progress *CurrentProgress, concurrencyLimitChannel
subdir.Parent = &dir
mutex.Lock()
-
dir.Files = append(dir.Files, subdir)
-
- switch subdir.Flag {
- case '!', '.':
- if dir.Flag != '!' {
- dir.Flag = '.'
- }
- }
-
mutex.Unlock()
<-concurrencyLimitChannel
diff --git a/analyze/file.go b/analyze/file.go
index e6f1ecf..3c9b80b 100644
--- a/analyze/file.go
+++ b/analyze/file.go
@@ -66,6 +66,13 @@ func (f *File) UpdateStats(links AlreadyCountedHardlinks) {
entry.UpdateStats(links)
}
+ switch entry.Flag {
+ case '!', '.':
+ if f.Flag != '!' {
+ f.Flag = '.'
+ }
+ }
+
itemCount += entry.ItemCount
if entry.MutliLinkInode > 0 {