A little of coordination for Rosettacode

Jos van Uden usenet at fwend.com
Wed Mar 27 07:19:26 PDT 2013


On 27-3-2013 15:17, Jos van Uden wrote:
> On 27-3-2013 0:20, bearophile wrote:
>> This task has just a Tango entry:
>> http://rosettacode.org/wiki/Concurrent_computing
>>
>>
>> So I am writing a Phobos version. This seems to work as requested:
>>
>>
>> import std.stdio, std.random, std.parallelism, core.thread, core.time;
>>
>> void main() {
>>      foreach (m; ["Enjoy", "Rosetta", "Code"])
>>          task!((s) {
>>              Thread.sleep(uniform(0, 1000).dur!"msecs");
>>              s.writeln;
>>          })(m).executeInNewThread;
>> }
>>
>>
>>
>> I have also tried with a parallel foreach, the syntax is cleaner, but to me it always print the strings in the given order (so it's not doing what the task requires), do you know why?
>>
>>
>> import std.stdio, std.random, std.parallelism, core.thread, core.time;
>>
>> void main() {
>>      foreach (s; ["Enjoy", "Rosetta", "Code"].parallel(1)) {
>>          Thread.sleep(uniform(0, 1000).dur!"msecs"); // Can't use UFCS.
>>          s.writeln;
>>      }
>> }
>
>
> (...) my system:

DMD32 D Compiler v2.062

win7 64 bits, i7 2600



More information about the Digitalmars-d-learn mailing list