digitalmars.D.learn - Using Parallel prints duplicates nor misses.
- Vino.B (35/35) Sep 17 2017 Hi,
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
Sep 17 2017








Vino.B <vino.bheeman hotmail.com>