| Bill Allombert on Fri, 05 Nov 2021 19:16:43 +0100 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
| Re: return statement from inside parfor does not work |
On Fri, Nov 05, 2021 at 12:47:19PM -0400, Max Alekseyev wrote:
> The following function never terminates despite executing the 'return'
> statement:
>
> f() = parfor(i=0,+oo, if(i==100,print(i);return(i)) );
>
> Calling f() does print '100', but ignores the 'return' statement. What's
> wrong?
In parfor (etc.) the return statement only returns from the parallel
section. you need to call return in the sequential section.
You can do something like
f() =
{
parfor(i=0,+oo,
if(i==100,return(i));
'NOTFOUND
,E,
if(!(E===NOTFOUND),print(E);return(E)))
}
Cheers,
Bill