Commit 317e8753 authored by Yedidya Feldblum's avatar Yedidya Feldblum Committed by Facebook GitHub Bot

reexport suspend_always, suspend_never

Summary: Reexport `suspend_always`, `suspend_never` from `folly/experimental/coro/Coroutine.h`, which wraps inclusion of `experimental/coroutine`.

Differential Revision: D26215623

fbshipit-source-id: 5dbe5dba67e0c4dcb5a54b00753937c39833d3a7
parent cc15e578
...@@ -93,7 +93,7 @@ class AsyncGeneratorPromise { ...@@ -93,7 +93,7 @@ class AsyncGeneratorPromise {
AsyncGenerator<Reference, Value> get_return_object() noexcept; AsyncGenerator<Reference, Value> get_return_object() noexcept;
std::experimental::suspend_always initial_suspend() noexcept { return {}; } suspend_always initial_suspend() noexcept { return {}; }
YieldAwaiter final_suspend() noexcept { YieldAwaiter final_suspend() noexcept {
DCHECK(!hasValue()); DCHECK(!hasValue());
......
...@@ -68,7 +68,7 @@ class BlockingWaitPromiseBase { ...@@ -68,7 +68,7 @@ class BlockingWaitPromiseBase {
::folly_coro_async_free(ptr, size); ::folly_coro_async_free(ptr, size);
} }
std::experimental::suspend_always initial_suspend() { return {}; } suspend_always initial_suspend() { return {}; }
FinalAwaiter final_suspend() noexcept { return {}; } FinalAwaiter final_suspend() noexcept { return {}; }
......
...@@ -23,3 +23,14 @@ ...@@ -23,3 +23,14 @@
#include <experimental/coroutine> #include <experimental/coroutine>
#endif // FOLLY_HAS_COROUTINES #endif // FOLLY_HAS_COROUTINES
#if FOLLY_HAS_COROUTINES
namespace folly::coro {
using std::experimental::suspend_always;
using std::experimental::suspend_never;
} // namespace folly::coro
#endif
...@@ -45,9 +45,9 @@ class Generator { ...@@ -45,9 +45,9 @@ class Generator {
auto get_return_object() noexcept { return Generator<T>{*this}; } auto get_return_object() noexcept { return Generator<T>{*this}; }
std::experimental::suspend_always initial_suspend() noexcept { return {}; } suspend_always initial_suspend() noexcept { return {}; }
std::experimental::suspend_always final_suspend() noexcept { return {}; } suspend_always final_suspend() noexcept { return {}; }
void unhandled_exception() noexcept { void unhandled_exception() noexcept {
m_exception = std::current_exception(); m_exception = std::current_exception();
...@@ -55,12 +55,12 @@ class Generator { ...@@ -55,12 +55,12 @@ class Generator {
void return_void() noexcept {} void return_void() noexcept {}
std::experimental::suspend_always yield_value(T& value) noexcept { suspend_always yield_value(T& value) noexcept {
m_value = std::addressof(value); m_value = std::addressof(value);
return {}; return {};
} }
std::experimental::suspend_always yield_value(T&& value) noexcept { suspend_always yield_value(T&& value) noexcept {
m_value = std::addressof(value); m_value = std::addressof(value);
return {}; return {};
} }
...@@ -107,7 +107,7 @@ class Generator { ...@@ -107,7 +107,7 @@ class Generator {
// Don't allow any use of 'co_await' inside the Generator // Don't allow any use of 'co_await' inside the Generator
// coroutine. // coroutine.
template <typename U> template <typename U>
std::experimental::suspend_never await_transform(U&& value) = delete; void await_transform(U&& value) = delete;
void destroy() noexcept { void destroy() noexcept {
std::experimental::coroutine_handle<promise_type>::from_promise(*this) std::experimental::coroutine_handle<promise_type>::from_promise(*this)
......
...@@ -98,7 +98,7 @@ class TaskPromiseBase { ...@@ -98,7 +98,7 @@ class TaskPromiseBase {
::folly_coro_async_free(ptr, size); ::folly_coro_async_free(ptr, size);
} }
std::experimental::suspend_always initial_suspend() noexcept { return {}; } suspend_always initial_suspend() noexcept { return {}; }
FinalAwaiter final_suspend() noexcept { return {}; } FinalAwaiter final_suspend() noexcept { return {}; }
......
...@@ -51,7 +51,7 @@ class ViaCoroutinePromiseBase { ...@@ -51,7 +51,7 @@ class ViaCoroutinePromiseBase {
::folly_coro_async_free(ptr, size); ::folly_coro_async_free(ptr, size);
} }
std::experimental::suspend_always initial_suspend() noexcept { return {}; } suspend_always initial_suspend() noexcept { return {}; }
void return_void() noexcept {} void return_void() noexcept {}
......
...@@ -39,9 +39,9 @@ class Wait { ...@@ -39,9 +39,9 @@ class Wait {
Wait get_return_object() { return Wait(promise_.get_future()); } Wait get_return_object() { return Wait(promise_.get_future()); }
std::experimental::suspend_never initial_suspend() noexcept { return {}; } suspend_never initial_suspend() noexcept { return {}; }
std::experimental::suspend_never final_suspend() noexcept { return {}; } suspend_never final_suspend() noexcept { return {}; }
void return_void() { promise_.set_value(); } void return_void() { promise_.set_value(); }
......
...@@ -43,7 +43,7 @@ class WithAsyncStackCoroutine { ...@@ -43,7 +43,7 @@ class WithAsyncStackCoroutine {
*this)}; *this)};
} }
std::experimental::suspend_always initial_suspend() noexcept { return {}; } suspend_always initial_suspend() noexcept { return {}; }
struct FinalAwaiter { struct FinalAwaiter {
bool await_ready() noexcept { return false; } bool await_ready() noexcept { return false; }
......
...@@ -61,7 +61,7 @@ class BarrierTask { ...@@ -61,7 +61,7 @@ class BarrierTask {
*this)}; *this)};
} }
std::experimental::suspend_always initial_suspend() noexcept { return {}; } suspend_always initial_suspend() noexcept { return {}; }
FinalAwaiter final_suspend() noexcept { return {}; } FinalAwaiter final_suspend() noexcept { return {}; }
...@@ -143,7 +143,7 @@ class DetachedBarrierTask { ...@@ -143,7 +143,7 @@ class DetachedBarrierTask {
*this)}; *this)};
} }
std::experimental::suspend_always initial_suspend() noexcept { return {}; } suspend_always initial_suspend() noexcept { return {}; }
auto final_suspend() noexcept { auto final_suspend() noexcept {
struct awaiter { struct awaiter {
......
...@@ -79,7 +79,7 @@ class InlineTaskPromiseBase { ...@@ -79,7 +79,7 @@ class InlineTaskPromiseBase {
::folly_coro_async_free(ptr, size); ::folly_coro_async_free(ptr, size);
} }
std::experimental::suspend_always initial_suspend() noexcept { return {}; } suspend_always initial_suspend() noexcept { return {}; }
auto final_suspend() noexcept { return FinalAwaiter{}; } auto final_suspend() noexcept { return FinalAwaiter{}; }
...@@ -275,7 +275,7 @@ struct InlineTaskDetached { ...@@ -275,7 +275,7 @@ struct InlineTaskDetached {
*this)}; *this)};
} }
std::experimental::suspend_always initial_suspend() noexcept { return {}; } suspend_always initial_suspend() noexcept { return {}; }
FinalAwaiter final_suspend() noexcept { return {}; } FinalAwaiter final_suspend() noexcept { return {}; }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment