17 |
|
DynamicAsyncFib f = this; |
18 |
|
int n = f.number; |
19 |
|
while (n > 1 && getSurplusQueuedTaskCount() <= 3) { |
20 |
< |
DynamicAsyncFib l = new DynamicAsyncFib(--n); |
21 |
< |
DynamicAsyncFib r = new DynamicAsyncFib(n - 1); |
20 |
> |
DynamicAsyncFib l = new DynamicAsyncFib(n - 1); |
21 |
> |
DynamicAsyncFib r = new DynamicAsyncFib(n - 2); |
22 |
|
f.linkSubtasks(l, r); |
23 |
|
r.fork(); |
24 |
|
f = l; |
25 |
+ |
--n; |
26 |
|
} |
27 |
< |
f.number = seqFib(n); |
27 |
> |
f.number = (n <= 1) ? n : seqFib(n); |
28 |
|
f.complete(); |
29 |
|
return false; |
30 |
|
} |
93 |
|
return r; |
94 |
|
} |
95 |
|
} |
95 |
– |
|
96 |
– |
|