On Thursday, 24 June 2021 at 20:08:06 UTC, seany wrote:
On Thursday, 24 June 2021 at 19:46:52 UTC, Jerry wrote:
On Thursday, 24 June 2021 at 18:23:01 UTC, seany wrote:
[...]

Maybe I'm wrong here, but I don't think there is any way to do that with parallel. What I would do is negate someConditionCheck and instead only do work when there is work to be done.
Obviously that may or may not be suitable.
But with parallel I don't see any way to make it happen.

The parallel() function is running a taskpool. I should be able to stop that in any case...

PS :

I have done this :

    parallelContainer: while(true) {
    outer: foreach(i, a; parallel(array_of_a)) {
       foreach(j, b; parallel(array_of_b)) {
         auto c = myFunction0(i,j);
         auto d = myFunction1(a,b);
         auto f = myFunction2(i,b);
         auto g = myFunction3(a,j);

         if(someConditionCheck(c,d,f,g)) {
           break parallelContainer;
         }

       }
    break;
    }

Is this safe? Will this cause any problem that I can't foresee now? Thank you

Reply via email to