| 668 | } |
| 669 | |
| 670 | void doAll() { |
| 671 | bool success = true; |
| 672 | while (success) { |
| 673 | success = false; |
| 674 | for (auto &stage : stages) { |
| 675 | success |= stage->processNext(); |
| 676 | } |
| 677 | } |
| 678 | |
| 679 | for (auto &stage : stages) { |
| 680 | if (stage->prevFinished() && stage->inputQueue.empty()) { |
| 681 | stage->complete(); |
| 682 | stage->isDone = true; |
| 683 | } |
| 684 | } |
| 685 | } |
| 686 | // inputProcessingDone |
| 687 | void run() { |
| 688 | using namespace std::chrono_literals; |
nothing calls this directly
no test coverage detected