The test is wrong, not the implementation of std.parallelism. finish(false) doesn't guarantee that the task won't be finished, it just means that the task may not be finished. IDK how this test made it in there. I'll make a pull request to get rid of it.
I tested same configuration on Mac, but no failure.
Failed test seems to depend on machine state.
static void slowFun() { Thread.sleep(dur!"msecs"(1)); }
auto pool1 = new TaskPool();
auto tSlow = task!slowFun();
pool1.put(tSlow);
pool1.finish();
assert(!tSlow.done);
Calling finish without true argument, finish doesn't wait the task.
So the result of tSlow.done depends on the timing.
I don't understand the std.parallelism deeply,
but this failure may occurs on other environments.
Masahiro
> _______________________________________________
On Sat, Dec 8, 2012 at 3:37 PM, Alex Rønne Petersen <xtzgzorex@gmail.com> wrote:
> See: http://d.puremagic.com/test-results/test_data.ghtml?runid=36650&logid=6
>
> Does anyone have the time to investigate this?
>
> Thanks,
> Alex
> phobos mailing list
> phobos@puremagic.com
> http://lists.puremagic.com/mailman/listinfo/phobos
_______________________________________________
phobos mailing list
phobos@puremagic.com
http://lists.puremagic.com/mailman/listinfo/phobos