Orbit Framework
An ultra-modern, asynchronous, cross-platform C++ Web Framework.
Loading...
Searching...
No Matches
Task.hpp
Go to the documentation of this file.
1
#pragma once
2
#include <coroutine>
3
#include <exception>
4
5
namespace
concurrency
{
6
7
struct
Task
{
8
struct
promise_type
{
9
Task
get_return_object
() {
10
return
Task
(std::coroutine_handle<promise_type>::from_promise(*
this
));
11
}
12
std::suspend_never
initial_suspend
() {
return
{}; }
13
std::suspend_never
final_suspend
() noexcept {
return
{}; }
14
15
void
return_void
() {}
16
void
unhandled_exception
() { std::terminate(); }
17
};
18
19
std::coroutine_handle<promise_type>
handle
;
20
21
Task
(std::coroutine_handle<promise_type> h) :
handle
(h) {}
22
};
23
24
}
// namespace concurrency
concurrency
Definition
Task.hpp:5
concurrency::Task::promise_type
Definition
Task.hpp:8
concurrency::Task::promise_type::return_void
void return_void()
Definition
Task.hpp:15
concurrency::Task::promise_type::final_suspend
std::suspend_never final_suspend() noexcept
Definition
Task.hpp:13
concurrency::Task::promise_type::unhandled_exception
void unhandled_exception()
Definition
Task.hpp:16
concurrency::Task::promise_type::get_return_object
Task get_return_object()
Definition
Task.hpp:9
concurrency::Task::promise_type::initial_suspend
std::suspend_never initial_suspend()
Definition
Task.hpp:12
concurrency::Task
Definition
Task.hpp:7
concurrency::Task::handle
std::coroutine_handle< promise_type > handle
Definition
Task.hpp:19
concurrency::Task::Task
Task(std::coroutine_handle< promise_type > h)
Definition
Task.hpp:21
include
orbit
concurrency
Task.hpp
Generated by
1.9.8