277 |
|
* } |
278 |
|
* public void onCompletion(CountedCompleter<?> caller) { |
279 |
|
* if (caller != this) { |
280 |
< |
* MapReducer<E> child = (MapReducer<E>)caller; |
281 |
< |
* MapReducer<E> sib = child.sibling; |
282 |
< |
* if (sib == null || sib.result == null) |
283 |
< |
* result = child.result; |
284 |
< |
* else |
285 |
< |
* result = reducer.apply(child.result, sib.result); |
280 |
> |
* MapReducer<E> child = (MapReducer<E>)caller; |
281 |
> |
* MapReducer<E> sib = child.sibling; |
282 |
> |
* if (sib == null || sib.result == null) |
283 |
> |
* result = child.result; |
284 |
> |
* else |
285 |
> |
* result = reducer.apply(child.result, sib.result); |
286 |
|
* } |
287 |
|
* } |
288 |
|
* public E getRawResult() { return result; } |
661 |
|
} |
662 |
|
|
663 |
|
/** |
664 |
< |
* Support for FJT exception propagation |
664 |
> |
* Supports ForkJoinTask exception propagation. |
665 |
|
*/ |
666 |
|
void internalPropagateException(Throwable ex) { |
667 |
|
CountedCompleter<?> a = this, s = a; |
671 |
|
} |
672 |
|
|
673 |
|
/** |
674 |
< |
* Implements execution conventions for CountedCompleters |
674 |
> |
* Implements execution conventions for CountedCompleters. |
675 |
|
*/ |
676 |
|
protected final boolean exec() { |
677 |
|
compute(); |