LeechCraft
0.6.70-16373-g319c272718
Modular cross-platform feature rich live environment.
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
void
await_suspend
(std::coroutine_handle<>)
noexcept
23
{
24
for
(
auto
h :
Promise_
.WaitingHandles_)
25
h ();
26
27
Promise_
.DecRef ();
28
}
29
30
void
await_resume
() const
noexcept
{}
31
};
32
}
LC::Util::detail::FinalSuspender::Promise_
Promise & Promise_
Definition:
finalsuspender.h:18
LC::Util::detail::FinalSuspender
Definition:
finalsuspender.h:16
LC::Util::detail::FinalSuspender::await_suspend
void await_suspend(std::coroutine_handle<>) noexcept
Definition:
finalsuspender.h:22
LC::Util::noexcept
auto Tup2 &&tup2 noexcept
Definition:
ctstringutils.h:41
LC::Util::detail
Definition:
fancytrayiconfreedesktop.cpp:23
LC::Util::detail::FinalSuspender::await_ready
bool await_ready() const noexcept
Definition:
finalsuspender.h:20
LC::Util::detail::FinalSuspender::await_resume
void await_resume() const noexcept
Definition:
finalsuspender.h:30
src
util
threads
coro
finalsuspender.h
Generated by
1.8.14