Different Output after each execution
Vino.B via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Fri Aug 18 08:46:13 PDT 2017
On Friday, 18 August 2017 at 11:24:24 UTC, Moritz Maxeiner wrote:
> On Friday, 18 August 2017 at 10:50:28 UTC, Moritz Maxeiner
> wrote:
>> On Friday, 18 August 2017 at 10:06:04 UTC, Vino wrote:
>>> On Friday, 18 August 2017 at 08:34:39 UTC, ikod wrote:
>>>> On Friday, 18 August 2017 at 08:00:26 UTC, Vino.B wrote:
>>>>> Hi All,
>>>>>
>>>>> I have written a small program to just list the
>>>>> directories, but when i run the program each time i am
>>>>> getting different output, hence request you help, below is
>>>>> the code
>>>>>
>>>>> [...]
>>>>
>>>> Do you expect some strict execution order when you run
>>>> 'parallel' foreach?
>>>
>>> Yes, the order of execution should be the same as the order
>>> of the directory provided to scan.
>>
>> Then you cannot parallelize the work[1], use:
>>
>> ---
>> auto dFiles = dirEntries(Dirlist[i],
>> SpanMode.shallow).filter!(a => a.isDir);
>> foreach (d; dFiles)
>> {
>> writefln("%-63s %.20s", d, d.timeCreated().toSimpleString);
>> }
>> ---
>>
>> [1] You cannot parallelize computations that depend on each
>> other, which you make yours do by requiring a specific order
>> of execution.
>
> Small correction: You *could* parallelize the conversion to
> string `d.timeCreated().toSimpleString`, but then you'd need to
> merge the resulting sets of strings generated in each work unit
> to regain the original order.
Hi,
Thank you very much, it worked and need one more help, with the
below line i am able to list all directories which contains the
pattern *DND*, now i need the revers, list all the directories
expect those containing the pattern *DND*.
dirEntries(i, SpanMode.shallow).filter!(a => a.isDir).filter!(a
=> globMatch(a.baseName, "*DND*"))
More information about the Digitalmars-d-learn
mailing list