| 198 | } |
| 199 | |
| 200 | void parallel::finishParent() { |
| 201 | ensureParent(); |
| 202 | while (readFromChildren(/*blocking=*/true)) |
| 203 | reapZombies(); |
| 204 | assert(active_children == 0); |
| 205 | while (wait(nullptr) != -1) |
| 206 | ; |
| 207 | ENSURE(emitOutput()); |
| 208 | } |
| 209 | |
| 210 | /* |
| 211 | * return true iff end of output has been reached |