| 98 | |
| 99 | template <typename T> |
| 100 | T future<T>::get() { |
| 101 | std::unique_lock<std::mutex> lock(state->mutex); |
| 102 | state->cv.wait(lock, [&] { return state->hasVal; }); |
| 103 | return state->val; |
| 104 | } |
| 105 | |
| 106 | template <typename T> |
| 107 | void future<T>::wait() const { |