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
13
namespace
LC::Util::detail
14
{
15
template
<
typename
Promise>
16
struct
FinalSuspender
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
}
LC::Util::detail
Definition
fancytrayiconfreedesktop.cpp:24
LC::Util::detail::FinalSuspender
Definition
finalsuspender.h:17
LC::Util::detail::FinalSuspender::await_resume
void await_resume() const noexcept
Definition
finalsuspender.h:29
LC::Util::detail::FinalSuspender::await_suspend
auto await_suspend(std::coroutine_handle<>) noexcept
Definition
finalsuspender.h:22
LC::Util::detail::FinalSuspender::Promise_
Promise & Promise_
Definition
finalsuspender.h:18
LC::Util::detail::FinalSuspender::await_ready
bool await_ready() const noexcept
Definition
finalsuspender.h:20
src
util
threads
coro
finalsuspender.h
Generated by
1.16.1