137 |
|
* |
138 |
|
* Methods with two sources (for example thenCombine) must deal |
139 |
|
* with races across both while pushing actions. The second |
140 |
< |
* completion is a CoCompletion pointing to the first, shared |
141 |
< |
* to ensure that at most one claims and performs the action. The |
140 |
> |
* completion is a CoCompletion pointing to the first, shared to |
141 |
> |
* ensure that at most one claims and performs the action. The |
142 |
|
* multiple-arity method allOf does this pairwise to form a tree |
143 |
|
* of completions. (Method anyOf just uses a depth-one Or tree.) |
144 |
|
* |
969 |
|
|
970 |
|
/* ------------- Two-source Anded -------------- */ |
971 |
|
|
972 |
< |
/* Pushes c on to completions and o's completions unless both done. */ |
972 |
> |
/** Pushes c on to completions and o's completions unless both done. */ |
973 |
|
private void bipushAnded(CompletableFuture<?> o, Completion c) { |
974 |
|
if (c != null && o != null) { |
975 |
|
Object r; CompletableFuture<?> d; |
1252 |
|
|
1253 |
|
/* ------------- Two-source Ored -------------- */ |
1254 |
|
|
1255 |
< |
/* Pushes c on to completions and o's completions unless either done. */ |
1255 |
> |
/** Pushes c on to completions and o's completions unless either done. */ |
1256 |
|
private void bipushOred(CompletableFuture<?> o, Completion c) { |
1257 |
|
if (c != null && o != null) { |
1258 |
|
CompletableFuture<?> d; |