proxygen
BlockingWait.h File Reference
#include <folly/Try.h>
#include <folly/experimental/coro/Traits.h>
#include <folly/fibers/Baton.h>
#include <folly/synchronization/Baton.h>
#include <cassert>
#include <exception>
#include <experimental/coroutine>
#include <type_traits>
#include <utility>

Go to the source code of this file.

Classes

class  folly::coro::detail::BlockingWaitTask< T >
 
class  folly::coro::detail::BlockingWaitPromiseBase
 
struct  folly::coro::detail::BlockingWaitPromiseBase::FinalAwaiter
 
class  folly::coro::detail::BlockingWaitPromise< T >
 
class  folly::coro::detail::BlockingWaitPromise< T & >
 
class  folly::coro::detail::BlockingWaitPromise< void >
 
class  folly::coro::detail::BlockingWaitTask< T >
 
struct  folly::coro::detail::decay_rvalue_reference< T >
 
struct  folly::coro::detail::decay_rvalue_reference< T && >
 

Namespaces

 folly
 —— Concurrent Priority Queue Implementation ——
 
 folly::coro
 
 folly::coro::detail
 

Typedefs

template<typename T >
using folly::coro::detail::decay_rvalue_reference_t = typename decay_rvalue_reference< T >::type
 

Functions

template<typename Awaitable , typename Result = await_result_t<Awaitable>, std::enable_if_t<!std::is_lvalue_reference< Result >::value, int > = 0>
auto folly::coro::detail::makeBlockingWaitTask (Awaitable &&awaitable) -> BlockingWaitTask< decay_rvalue_reference_t< Result >>
 
template<typename Awaitable , typename Result = await_result_t<Awaitable>, std::enable_if_t< std::is_void< Result >::value, int > = 0>
BlockingWaitTask< void > folly::coro::detail::makeRefBlockingWaitTask (Awaitable &&awaitable)
 
template<typename Awaitable , typename Result = await_result_t<Awaitable>, std::enable_if_t<!std::is_void< Result >::value, int > = 0>
auto folly::coro::detail::makeRefBlockingWaitTask (Awaitable &&awaitable) -> BlockingWaitTask< std::add_lvalue_reference_t< Result >>
 
template<typename Awaitable >
auto folly::coro::blockingWait (Awaitable &&awaitable) -> detail::decay_rvalue_reference_t< await_result_t< Awaitable >>