| 16 | cv_awaiter::cv_awaiter(async_condition_variable& parent, scoped_async_lock& lock) noexcept : m_parent(parent), m_lock(lock) {} |
| 17 | |
| 18 | void cv_awaiter::await_suspend(details::coroutine_handle<void> caller_handle) { |
| 19 | m_caller_handle = caller_handle; |
| 20 | |
| 21 | std::unique_lock<std::mutex> lock(m_parent.m_lock); |
| 22 | m_lock.unlock(); |
| 23 | |
| 24 | m_parent.m_awaiters.push_back(*this); |
| 25 | } |
| 26 | |
| 27 | void cv_awaiter::resume() noexcept { |
| 28 | assert(static_cast<bool>(m_caller_handle)); |