`ExecutorCompletionService` already gives you a queue with the futures, and you can get the results from the future itself. So I think it would be simpler to use an `ExecutorCompletionService + external counter` than an `ExecutorAllCompletionService + external queue`.