missing data with parallel and stdin
moechofe via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Mon May 23 01:59:31 PDT 2016
Hi, I write a script that take a list of files from STDIN,
compute some stuff, and copy files with a new names.
I got 33k lines at input but got only 3k-5k in the destination
folder.
This is not append if I remove the .parallel() function.
What did I do wrong?
void delegate(string source,string dest) handler;
if(use_symlink) handler = delegate(string s,string d){
symlink(s,d);
}; else handler = delegate(string s,string d){
copy(s,d);
};
foreach(entry; parallel(stdin.byLineCopy)) try
{
auto source = buildPath(static_path,entry);
auto md5 = digest!MD5(File(source).byChunk(64*1024));
auto hash = toHexString!(LetterCase.lower)(md5);
auto file = text(hash,'_',baseName(entry));
auto dest = buildPath(hashed_path,file);
handler(source,dest);
writeln(entry,' ',file);
}
catch(Exception e)
{
error("Couldn't read, hash or copy %s",entry);
}
More information about the Digitalmars-d-learn
mailing list