sorting associative array's keys by values
maarten van damme
maartenvd1994 at gmail.com
Sun Jun 17 07:10:20 PDT 2012
another problem, when I do use shared.
My code is
int amountTreads = 20;
if(upperLimit-lowerLimit<amountTreads)
amountTreads=upperLimit-lowerLimit;
int perTrade = (upperLimit - lowerLimit) / amountTreads;
for (int x = 0; x < amountTreads; x++)
{
//we're at the last trade, parse all the rest
if (amountTreads - x == 1)
{
spawn(&parse, lowerLimit + x * perTrade, upperLimit - x *
perTrade, thisTid);
}
else
{
spawn(&parse, lowerLimit + x * perTrade, lowerLimit + (x +
1) * perTrade - 1, thisTid);
}
}
//wait for all those treads and process the response
for (int x = 0; x < amountTreads; x++)
{
auto msg=receiveOnly!(shared int[string],shared int[string]);
int[string] tempDemands = cast(int[string])msg[0];
int[string] tempOffers = cast(int[string])msg[1];
foreach (string key; tempDemands.keys){
demands[key] += tempDemands[key];
}
foreach (string key; tempOffers.keys){
offers[key] += tempOffers[key];
}
writeln("ok, we're at ",x);
}
but when every tread has stopped working , that for-loop has only been
executed 17 times.
More information about the Digitalmars-d-learn
mailing list