2589 |
|
*/ |
2590 |
|
public <T> T invoke(ForkJoinTask<T> task) { |
2591 |
|
externalSubmit(task); |
2592 |
< |
return task.join(); |
2592 |
> |
return task.joinForPoolInvoke(this); |
2593 |
|
} |
2594 |
|
|
2595 |
|
/** |
2681 |
|
externalSubmit(f); |
2682 |
|
} |
2683 |
|
for (int i = futures.size() - 1; i >= 0; --i) |
2684 |
< |
((ForkJoinTask<?>)futures.get(i)).quietlyJoin(); |
2684 |
> |
((ForkJoinTask<?>)futures.get(i)).tryJoinForPoolInvoke(this); |
2685 |
|
return futures; |
2686 |
|
} catch (Throwable t) { |
2687 |
|
for (Future<T> e : futures) |
2712 |
|
ForkJoinTask.cancelIgnoringExceptions(f); |
2713 |
|
else { |
2714 |
|
try { |
2715 |
< |
f.get(ns, TimeUnit.NANOSECONDS); |
2715 |
> |
((ForkJoinTask<T>)f).getForPoolInvoke(this, ns); |
2716 |
|
} catch (CancellationException | TimeoutException | |
2717 |
|
ExecutionException ok) { |
2718 |
|
} |
2818 |
|
if (root.isDone()) |
2819 |
|
break; |
2820 |
|
} |
2821 |
< |
return root.get(); |
2821 |
> |
return root.getForPoolInvoke(this); |
2822 |
|
} finally { |
2823 |
|
for (InvokeAnyTask<T> f : fs) |
2824 |
|
ForkJoinTask.cancelIgnoringExceptions(f); |
2845 |
|
if (root.isDone()) |
2846 |
|
break; |
2847 |
|
} |
2848 |
< |
return root.get(nanos, TimeUnit.NANOSECONDS); |
2848 |
> |
return root.getForPoolInvoke(this, nanos); |
2849 |
|
} finally { |
2850 |
|
for (InvokeAnyTask<T> f : fs) |
2851 |
|
ForkJoinTask.cancelIgnoringExceptions(f); |