Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

post (2 of 3 overloads)

Submits a completion token or function object for execution.

template<
    typename Executor,
    typename NullaryToken = default_completion_token_t<Executor>>
auto post(
    const Executor & ex,
    NullaryToken && token = default_completion_token_t< Executor >(),
    constraint_t<(execution::is_executor< Executor >::value &&can_require< Executor, execution::blocking_t::never_t >::value)||is_executor< Executor >::value >  = 0);

This function submits an object for execution using the specified executor. The function object is queued for execution, and is never called from the current thread prior to returning from post().

The use of post(), rather than defer, indicates the caller's preference that the function object be eagerly queued for execution.

Parameters

ex

The target executor.

token

The completion token that will be used to produce a completion handler. The function signature of the completion handler must be:

void handler();
Return Value

This function returns async_initiate<NullaryToken, void()>(Init{ex}, token), where Init is a function object type defined as:

class Init
{
public:
  using executor_type = Executor;
  explicit Init(const Executor& ex) : ex_(ex) {}
  executor_type get_executor() const noexcept { return ex_; }
  template <typename CompletionHandler>
    void operator()(CompletionHandler&& completion_handler) const;
private:
  Executor ex_; // exposition only
};

The function call operator of Init:

Completion Signature
void()

PrevUpHomeNext