| 195 | |
| 196 | public: |
| 197 | Tag Wait() { |
| 198 | std::unique_lock lock{mutex}; |
| 199 | cond.wait(lock, [this]{ return done; }); |
| 200 | |
| 201 | if (error) |
| 202 | std::rethrow_exception(error); |
| 203 | |
| 204 | return std::move(tag); |
| 205 | } |
| 206 | |
| 207 | /* virtual methods from RemoteTagHandler */ |
| 208 | void OnRemoteTag(Tag &&_tag) noexcept override { |