Ubuntu 11.10 64-bit dmd.

The following program gets stuck during the writeln() call.

- The foo() call alone works fine.

- The program works fine when there is no writeln() call nor foo() call. All elements get processed in that case and the results are ignored.

Am I using taskPool.map incorrectly or is this a bug?

import std.stdio;
import std.parallelism;
import core.thread;

int func(int i)
{
    writeln("processing ", i);
    return i;
}

void main()
{
    auto results = taskPool.map!func([1,2,3,4,5,6,7,8], 2);

    writeln(results);  // <-- Gets stuck

    foo(results); // this works fine
}

void foo(R)(R range)
{
    for ( ; !range.empty; range.popFront()) {
        writeln(range.front);
    }
}

Thank you,
Ali

Reply via email to