| 410 | |
| 411 | void Report(TResult&& result) override { |
| 412 | with_lock (ResultsLock_) { |
| 413 | OrderedResultQueue_.emplace(result.TestId, std::move(result)); |
| 414 | while (!OrderedResultQueue_.empty() && OrderedResultQueue_.begin()->first <= ExpectedTestId_) { |
| 415 | Slave_->Report(std::move(OrderedResultQueue_.begin()->second)); |
| 416 | OrderedResultQueue_.erase(OrderedResultQueue_.begin()); |
| 417 | ++ExpectedTestId_; |
| 418 | } |
| 419 | } |
| 420 | } |
| 421 | |
| 422 | void Finish() override { |