September 17, 2017 Using Parallel prints duplicates nor misses. | ||||
---|---|---|---|---|
| ||||
Hi, Request your help, the below code sometime prints duplicate and some time miss the entry. due to which any code written below the line "foreach (d; parallel(dFiles[], 1))" are some time duplicated and some time not executed(skips). tired adding sort and uniq to the writeln but no luck. Code: import std.algorithm: filter, map, sort, uniq; import std.container; import std.file: SpanMode, dirEntries, isDir; import std.stdio: writeln; import std.parallelism: parallel; void main () { auto SizeDirlst = Array!string ("C:\\Temp\\TEAM\\BACKUP", "C:\\Temp\\TEAM\\EXPORT"); foreach (FFs; SizeDirlst[]) { auto dFiles = Array!string ((dirEntries(FFs, SpanMode.shallow).filter!(a => a.isDir))[].map!(a => a.name)); foreach (d; parallel(dFiles[], 1)) { writeln(d); } } } Output 1: C:\Temp\TEAM\BACKUP\dir1 C:\Temp\TEAM\BACKUP\DND3 C:\Temp\TEAM\BACKUP\dir2 - Duplicate C:\Temp\TEAM\BACKUP\dir2 - Duplicate C:\Temp\TEAM\EXPORT\DND6 Output 2: C:\Temp\TEAM\BACKUP\dir1 C:\Temp\TEAM\BACKUP\DND3 C:\Temp\TEAM\BACKUP\dir2 - Duplicate C:\Temp\TEAM\BACKUP\dir2 - Duplicate C:\Temp\TEAM\EXPORT\DND6 - Missing From, Vino.B |
Copyright © 1999-2021 by the D Language Foundation