| 702 | try { |
| 703 | loop choose { |
| 704 | when(Reference<ScanReturnedContext> doc = waitNext(docs)) { |
| 705 | // throws end_of_stream when totally finished |
| 706 | bufferedDocs.push_back(std::make_pair(doc, outerLock->take(g_network->getCurrentTask() + 1))); |
| 707 | } |
| 708 | when(wait(bufferedDocs.empty() ? Never() : bufferedDocs.front().second)) { |
| 709 | innerLock->release(); |
| 710 | output.send(bufferedDocs.front().first); |
no test coverage detected