On Mon Apr 25 06:10:50 2016, sml...@gmail.com wrote: > The following works fine: > > for (^100).race(batch=>1) { {1 + $^a}(10) } > > But the following pretty reliably crashes: > > for (^100).race(batch=>1) { {1 + $^a}.assuming(10)() } > > If even crashes when EVAL is used to make sure each thread has a > completely different closure: > > for (^100).race(batch=>1) { EVAL(q[ ({1 + $^a}) ]).assuming(10)() } > I believe `assuming` uses `EVAL` under the hood, and that it's `EVAL` having reentrancy issues that is at the heart of it. So adding an extra `EVAL` is only making it worse. (And yes, this is fairly high on my list of stuff to hunt down and fix.)
/jnthn