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 {
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 {
DCHECK(!hasValue());
......
......@@ -68,7 +68,7 @@ class BlockingWaitPromiseBase {
::folly_coro_async_free(ptr, size);
}
std::experimental::suspend_always initial_suspend() { return {}; }
suspend_always initial_suspend() { return {}; }
FinalAwaiter final_suspend() noexcept { return {}; }
......
......@@ -23,3 +23,14 @@
#include <experimental/coroutine>
#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 {
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 {
m_exception = std::current_exception();
......@@ -55,12 +55,12 @@ class Generator {
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);
return {};
}
std::experimental::suspend_always yield_value(T&& value) noexcept {
suspend_always yield_value(T&& value) noexcept {
m_value = std::addressof(value);
return {};
}
......@@ -107,7 +107,7 @@ class Generator {
// Don't allow any use of 'co_await' inside the Generator
// coroutine.
template <typename U>
std::experimental::suspend_never await_transform(U&& value) = delete;
void await_transform(U&& value) = delete;
void destroy() noexcept {
std::experimental::coroutine_handle<promise_type>::from_promise(*this)
......
......@@ -98,7 +98,7 @@ class TaskPromiseBase {
::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 {}; }
......
......@@ -51,7 +51,7 @@ class ViaCoroutinePromiseBase {
::folly_coro_async_free(ptr, size);
}
std::experimental::suspend_always initial_suspend() noexcept { return {}; }
suspend_always initial_suspend() noexcept { return {}; }
void return_void() noexcept {}
......
......@@ -39,9 +39,9 @@ class Wait {
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(); }
......
......@@ -43,7 +43,7 @@ class WithAsyncStackCoroutine {
*this)};
}
std::experimental::suspend_always initial_suspend() noexcept { return {}; }
suspend_always initial_suspend() noexcept { return {}; }
struct FinalAwaiter {
bool await_ready() noexcept { return false; }
......
......@@ -61,7 +61,7 @@ class BarrierTask {
*this)};
}
std::experimental::suspend_always initial_suspend() noexcept { return {}; }
suspend_always initial_suspend() noexcept { return {}; }
FinalAwaiter final_suspend() noexcept { return {}; }
......@@ -143,7 +143,7 @@ class DetachedBarrierTask {
*this)};
}
std::experimental::suspend_always initial_suspend() noexcept { return {}; }
suspend_always initial_suspend() noexcept { return {}; }
auto final_suspend() noexcept {
struct awaiter {
......
......@@ -79,7 +79,7 @@ class InlineTaskPromiseBase {
::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{}; }
......@@ -275,7 +275,7 @@ struct InlineTaskDetached {
*this)};
}
std::experimental::suspend_always initial_suspend() noexcept { return {}; }
suspend_always initial_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