@@ -16,15 +16,44 @@ | |||
#pragma once | |||
#include <atomic> | |||
#include <chrono> | |||
#include <array> | |||
#include <vector> | |||
#include <deque> | |||
#include <mutex> | |||
#include <map> | |||
#include <list> | |||
#include <any> | |||
#include <unordered_map> | |||
#include <functional> | |||
#include <optional> | |||
#include <thread> | |||
#include <iostream> | |||
#include <assert.h> | |||
#include <experimental/coroutine> | |||
#include "src/def.h" | |||
#include "src/spinlock.h" | |||
#include "src/counted_ptr.h" | |||
#include "src/state.h" | |||
#include "src/future.h" | |||
#include "src/promise.h" | |||
#include "src/awaitable.h" | |||
#include "src/event.h" | |||
#include "src/mutex.h" | |||
#include "src/channel.h" | |||
#include "src/rf_task.h" | |||
#include "src/utils.h" | |||
#include "src/timer.h" | |||
#include "src/scheduler.h" | |||
#include "src/promise.inl" | |||
#include "src/state.inl" | |||
#include "src/_awaker.h" | |||
#include "src/event.h" | |||
#include "src/mutex.h" | |||
#include "src/channel.h" | |||
#include "src/generator.h" | |||
#include "src/sleep.h" | |||
#include "src/when.h" | |||
@@ -1,8 +1,5 @@ | |||
#pragma once | |||
#include "spinlock.h" | |||
#include "future.h" | |||
RESUMEF_NS | |||
{ | |||
namespace detail |
@@ -1,7 +1,5 @@ | |||
#pragma once | |||
#include "_awaker.h" | |||
RESUMEF_NS | |||
{ | |||
namespace detail |
@@ -1,19 +1,5 @@ | |||
#pragma once | |||
#include <atomic> | |||
#include <chrono> | |||
#include <vector> | |||
#include <deque> | |||
#include <mutex> | |||
#include <map> | |||
#include <list> | |||
#include <unordered_map> | |||
#include <functional> | |||
#include <optional> | |||
#include <thread> | |||
#include <assert.h> | |||
#include <experimental/coroutine> | |||
#define LIB_RESUMEF_VERSION 200103 // 2.1.3 | |||
#if defined(RESUMEF_MODULE_EXPORT) |
@@ -1,8 +1,4 @@ | |||
#include "event.h" | |||
#include <assert.h> | |||
#include "scheduler.h" | |||
#include "awaitable.h" | |||
#include "state.inl" | |||
#include "../librf.h" | |||
RESUMEF_NS | |||
{ |
@@ -1,7 +1,5 @@ | |||
#pragma once | |||
#include "_awaker.h" | |||
RESUMEF_NS | |||
{ | |||
namespace detail |
@@ -1,8 +1,6 @@ | |||
| |||
#pragma once | |||
#include "state.h" | |||
RESUMEF_NS | |||
{ | |||
template<class _Ty> |
@@ -1,8 +1,4 @@ | |||
#include "mutex.h" | |||
#include <assert.h> | |||
#include "scheduler.h" | |||
#include "awaitable.h" | |||
#include "state.inl" | |||
#include "../librf.h" | |||
RESUMEF_NS | |||
{ |
@@ -1,7 +1,5 @@ | |||
#pragma once | |||
#include "_awaker.h" | |||
RESUMEF_NS | |||
{ | |||
namespace detail |
@@ -1,5 +1,4 @@ | |||
#pragma once | |||
#include "state.h" | |||
#pragma push_macro("new") | |||
#undef new | |||
@@ -78,6 +77,7 @@ RESUMEF_NS | |||
struct promise_t final : public promise_impl_t<_Ty> | |||
{ | |||
using typename promise_impl_t<_Ty>::value_type; | |||
using promise_impl_t<_Ty>::get_return_object; | |||
void return_value(value_type val); | |||
void yield_value(value_type val); | |||
@@ -86,6 +86,8 @@ RESUMEF_NS | |||
template<> | |||
struct promise_t<void> final : public promise_impl_t<void> | |||
{ | |||
using promise_impl_t<void>::get_return_object; | |||
void return_void(); | |||
void yield_value(); | |||
}; |
@@ -1,5 +1,4 @@ | |||
#pragma once | |||
| |||
RESUMEF_NS | |||
{ | |||
struct suspend_on_initial | |||
@@ -79,7 +78,7 @@ RESUMEF_NS | |||
template<class _Ty> | |||
inline void promise_t<_Ty>::return_value(value_type val) | |||
inline void promise_t<_Ty>::return_value(_Ty val) | |||
{ | |||
this->get_state()->set_value(std::move(val)); | |||
} |
@@ -1,7 +1,4 @@ | |||
| |||
#include "rf_task.h" | |||
#include "scheduler.h" | |||
#include <assert.h> | |||
#include "../librf.h" | |||
RESUMEF_NS | |||
{ |
@@ -1,9 +1,5 @@ | |||
#pragma once | |||
#include "def.h" | |||
#include "future.h" | |||
#include "promise.h" | |||
RESUMEF_NS | |||
{ | |||
struct task_base_t; |
@@ -1,5 +1,4 @@ | |||
#include "scheduler.h" | |||
#include <assert.h> | |||
#include "../librf.h" | |||
#if RESUMEF_DEBUG_COUNTER | |||
std::mutex g_resumef_cout_mutex; |
@@ -1,13 +1,4 @@ | |||
| |||
#pragma once | |||
#include <array> | |||
#include <vector> | |||
//#include <yvals.h> | |||
#include "rf_task.h" | |||
#include "utils.h" | |||
#include "timer.h" | |||
#pragma once | |||
RESUMEF_NS | |||
{ |
@@ -1,7 +1,4 @@ | |||
#include "scheduler.h" | |||
#include "awaitable.h" | |||
#include "sleep.h" | |||
#include "../librf.h" | |||
RESUMEF_NS | |||
{ |
@@ -1,10 +1,7 @@ | |||
| |||
//用于内部实现的循环锁 | |||
//用于内部实现的循环锁 | |||
#pragma once | |||
#include "def.h" | |||
RESUMEF_NS | |||
{ | |||
struct spinlock |
@@ -1,7 +1,4 @@ | |||
| |||
#include "rf_task.h" | |||
#include "scheduler.h" | |||
#include <assert.h> | |||
#include "../librf.h" | |||
RESUMEF_NS | |||
{ |
@@ -1,10 +1,4 @@ | |||
| |||
#pragma once | |||
#include "def.h" | |||
#include "spinlock.h" | |||
#include "counted_ptr.h" | |||
#include <iostream> | |||
#pragma once | |||
RESUMEF_NS | |||
{ |
@@ -1,5 +1,4 @@ | |||
#pragma once | |||
| |||
RESUMEF_NS | |||
{ | |||
template<class _PromiseT, typename _Enable> |
@@ -1,5 +1,4 @@ | |||
#include "timer.h" | |||
#include "../librf.h" | |||
RESUMEF_NS | |||
{ |
@@ -1,8 +1,5 @@ | |||
#pragma once | |||
#include "def.h" | |||
RESUMEF_NS | |||
{ | |||
struct timer_manager; |
@@ -1,7 +1,4 @@ | |||
#include "_awaker.h" | |||
#include "when.h" | |||
#include <assert.h> | |||
#include "../librf.h" | |||
RESUMEF_NS | |||
{ |
@@ -1,18 +1,11 @@ | |||
#pragma once | |||
#include <any> | |||
RESUMEF_NS | |||
{ | |||
using any_t = std::any; | |||
using std::any_cast; | |||
} | |||
#include "_awaker.h" | |||
#include "promise.h" | |||
#include "promise.inl" | |||
#include "awaitable.h" | |||
//纠结过when_any的返回值,是选用index + std::any,还是选用std::variant<>。最终选择了std::any。 | |||
//std::variant<>存在第一个元素不能默认构造的问题,需要使用std::monostate来占位,导致下标不是从0开始。 | |||
//而且,std::variant<>里面存在类型重复的问题,好几个操作都是病态的 |