The way AsyncBase waits is that it identifies futures over the limit and then waits for all of them to finish. Some of these futures may take much longer than others, e.g. a service call that times out, while others futures not in the toForce list may finish first. So even though the overall number of outstanding futures may be lower we still keep waiting for every single toForce future to finish. End result is that we don't wait just until we come down to MaxWaitingFutures but longer, thus under utilizing resources.
I'm working on a fix for this but any suggestions are welcome.
The way AsyncBase waits is that it identifies futures over the limit and then waits for all of them to finish. Some of these futures may take much longer than others, e.g. a service call that times out, while others futures not in the toForce list may finish first. So even though the overall number of outstanding futures may be lower we still keep waiting for every single toForce future to finish. End result is that we don't wait just until we come down to MaxWaitingFutures but longer, thus under utilizing resources.
I'm working on a fix for this but any suggestions are welcome.