proxygen
folly::pushmi::detail::blocking_submit_fn::fn< AN > Struct Template Reference

Public Member Functions

requires Sender< In > &&Invocable< submit_impl< In > &, In &,::folly::pushmi::invoke_result_t< receiver_impl< In >, lock_state *, std::tuple< AN... > && > > &&not AlwaysBlocking< In > In operator() (In in)
 

Public Attributes

std::tuple< AN... > args_
 

Detailed Description

template<class... AN>
struct folly::pushmi::detail::blocking_submit_fn::fn< AN >

Definition at line 307 of file submit.h.

Member Function Documentation

template<class... AN>
requires Sender<In>&& Invocable< submit_impl<In>&, In&, ::folly::pushmi::invoke_result_t< receiver_impl<In>, lock_state*, std::tuple<AN...>&&> >&& not AlwaysBlocking<In> In folly::pushmi::detail::blocking_submit_fn::fn< AN >::operator() ( In  in)
inline

Definition at line 319 of file submit.h.

References folly::pushmi::detail::blocking_submit_fn::lock_state::done, folly::gen::guard(), folly::pushmi::detail::blocking_submit_fn::lock_state::lock, folly::gen::move, folly::pushmi::detail::blocking_submit_fn::lock_state::nested, folly::pushmi::detail::blocking_submit_fn::lock_state::signaled, and folly::pushmi::submit.

319  {
320  lock_state state{};
321 
322  auto make = receiver_impl<In>{};
323  auto submit = submit_impl<In>{};
324  submit(in, make(&state, std::move(args_)));
325 
326  std::unique_lock<std::mutex> guard{state.lock};
327  state.signaled.wait(
328  guard, [&] { return state.done && state.nested.load() == 0; });
329  return in;
330  }
constexpr detail::Map< Move > move
Definition: Base-inl.h:2567
GuardImpl guard(ErrorHandler &&handler)
Definition: Base.h:840
PUSHMI_INLINE_VAR constexpr __adl::do_submit_fn submit
state
Definition: http_parser.c:272

Member Data Documentation

template<class... AN>
std::tuple<AN...> folly::pushmi::detail::blocking_submit_fn::fn< AN >::args_

Definition at line 308 of file submit.h.


The documentation for this struct was generated from the following file: