import static groovyx.gpars.Parallelizer.doParallel
@Grab(group='org.codehaus.gpars', module='gpars', version='0.9')
@Grab(group='org.coconut.forkjoin', module='jsr166y', version='070108')
class Foo {}
doParallel {
def arbitraryData = (1..1000).collect { new Random().nextInt() }
arbitraryData.findAllParallel { it % 2 }.min()
}
/*
java.lang.ClassCastException: java.lang.Integer
at $Proxy9.evaluate(Unknown Source)
at jsr166y.forkjoin.ParallelArray$WithBoundedFilter.leafIndexSelected(ParallelArray.java:1846)
at jsr166y.forkjoin.PAS$FJSelectAll.compute(PAS.java:1292)
at jsr166y.forkjoin.RecursiveAction.exec(RecursiveAction.java:247)
at jsr166y.forkjoin.ForkJoinWorkerThread.doForkJoin(ForkJoinWorkerThread.java:978)
at jsr166y.forkjoin.RecursiveAction.forkJoin(RecursiveAction.java:138)
at jsr166y.forkjoin.PAS$FJSelectAll.internalPhase0(PAS.java:1306)
at jsr166y.forkjoin.PAS$FJSelectAll.compute(PAS.java:1290)
at jsr166y.forkjoin.RecursiveAction.exec(RecursiveAction.java:247)
at jsr166y.forkjoin.ForkJoinWorkerThread.doForkJoin(ForkJoinWorkerThread.java:978)
at jsr166y.forkjoin.RecursiveAction.forkJoin(RecursiveAction.java:138)
at jsr166y.forkjoin.PAS$FJSelectAll.internalPhase0(PAS.java:1306)
at jsr166y.forkjoin.PAS$FJSelectAll.compute(PAS.java:1290)
at jsr166y.forkjoin.RecursiveAction.exec(RecursiveAction.java:247)
at jsr166y.forkjoin.ForkJoinWorkerThread.doForkJoin(ForkJoinWorkerThread.java:978)
at jsr166y.forkjoin.RecursiveAction.forkJoin(RecursiveAction.java:138)
at jsr166y.forkjoin.PAS$FJSelectAll.internalPhase0(PAS.java:1306)
at jsr166y.forkjoin.PAS$FJSelectAll.compute(PAS.java:1290)
at jsr166y.forkjoin.RecursiveAction.exec(RecursiveAction.java:247)
at jsr166y.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:286)
*/