LeechCraft 0.6.70-18450-gabe19ee3b0
Modular cross-platform feature rich live environment.
Loading...
Searching...
No Matches
finalsuspender.h
Go to the documentation of this file.
1/**********************************************************************
2 * LeechCraft - modular cross-platform feature rich internet client.
3 * Copyright (C) 2006-2014 Georg Rudoy
4 *
5 * Distributed under the Boost Software License, Version 1.0.
6 * (See accompanying file LICENSE or copy at https://www.boost.org/LICENSE_1_0.txt)
7 **********************************************************************/
8
9#pragma once
10
11#include <coroutine>
12
13namespace LC::Util::detail
14{
15 template<typename Promise>
17 {
18 Promise& Promise_;
19
20 bool await_ready () const noexcept { return false; }
21
22 auto await_suspend (std::coroutine_handle<>) noexcept
23 {
24 const auto cont = Promise_.Continuation_.exchange ({});
25 Promise_.DecRef ();
26 return cont ? cont : std::noop_coroutine ();
27 }
28
29 void await_resume () const noexcept {}
30 };
31}
void await_resume() const noexcept
auto await_suspend(std::coroutine_handle<>) noexcept
bool await_ready() const noexcept