execution_context& context() const noexcept;
Requires: *this != nullptr.
Returns: e.context(), where e is the target object of *this.
void on_work_started() const noexcept;
Requires: *this != nullptr.
Effects: e.on_work_started(), where e is the target object of *this.
void on_work_finished() const noexcept;
Requires: *this != nullptr.
Effects: e.on_work_finished(), where e is the target object of *this.
template<class Func, class ProtoAllocator>
void dispatch(Func&& f, const ProtoAllocator& a) const;
Let e be the target object of *this. Let a1 be the allocator that was specified when the target was set. Let fd be the result of DECAY_COPY(f) (C++ 2014 [thread.decaycopy]).
Effects: e.dispatch(g, a1), where g is a function object of unspecified type that, when called as g(), performs fd(). The allocator a is used to allocate any memory required to implement g.
template<class Func, class ProtoAllocator>
void post(Func&& f, const ProtoAllocator& a) const;
Let e be the target object of *this. Let a1 be the allocator that was specified when the target was set. Let fd be the result of DECAY_COPY(f).
Effects: e.post(g, a1), where g is a function object of unspecified type that, when called as g(), performs fd(). The allocator a is used to allocate any memory required to implement g.
template<class Func, class ProtoAllocator>
void defer(Func&& f, const ProtoAllocator& a) const;
Let e be the target object of *this. Let a1 be the allocator that was specified when the target was set. Let fd be the result of DECAY_COPY(f).
Effects: e.defer(g, a1), where g is a function object of unspecified type that, when called as g(), performs fd(). The allocator a is used to allocate any memory required to implement g.