stlab 2.3.0
Modern, modular C++ algorithms, data structures, and concurrency primitives
Loading...
Searching...
No Matches

Detailed Description

ABI-stable task submission entry points for the shared executor core.

Typedefs

using stlab::stlab_v2_task_proc
 Function pointer type submitted through the shared executor ABI.

Functions

void stlab::stlab_v2_default_executor_submit (const unsigned char *task_abi_guard, const stlab_v2_task_concept *vtable, stlab_v2_task_proc invoke, void *source) noexcept
 Submits one task to the shared default-priority executor.
void stlab::stlab_v2_high_executor_submit (const unsigned char *task_abi_guard, const stlab_v2_task_concept *vtable, stlab_v2_task_proc invoke, void *source) noexcept
 Submits one task to the shared high-priority executor.
void stlab::stlab_v2_low_executor_submit (const unsigned char *task_abi_guard, const stlab_v2_task_concept *vtable, stlab_v2_task_proc invoke, void *source) noexcept
 Submits one task to the shared low-priority executor.
void stlab::stlab_v2_notify_default_executor_before_waiting () noexcept
 Notifies the shared default executor that the calling thread is about to wait.

Typedef Documentation

◆ stlab_v2_task_proc

Function pointer type submitted through the shared executor ABI.

  • Precondition: task does not throw.

Function Documentation

◆ stlab_v2_default_executor_submit()

void stlab::v2::stlab_v2_default_executor_submit ( const unsigned char * task_abi_guard,
const stlab_v2_task_concept * vtable,
stlab_v2_task_proc invoke,
void * source )
noexcept

Submits one task to the shared default-priority executor.

  • Precondition: task_abi_guard points to detail::current_task_storage_abi_guard::value.
  • Precondition: vtable and invoke are not nullptr.
  • Precondition: source is the relocation_source() of a live task<void() noexcept> sharing vtable/invoke, valid for the duration of this call.
  • Postcondition: exactly one invocation of the relocated target is scheduled.

◆ stlab_v2_high_executor_submit()

void stlab::v2::stlab_v2_high_executor_submit ( const unsigned char * task_abi_guard,
const stlab_v2_task_concept * vtable,
stlab_v2_task_proc invoke,
void * source )
noexcept

Submits one task to the shared high-priority executor.

  • Precondition: task_abi_guard points to detail::current_task_storage_abi_guard::value.
  • Precondition: vtable and invoke are not nullptr.
  • Precondition: source is the relocation_source() of a live task<void() noexcept> sharing vtable/invoke, valid for the duration of this call.
  • Postcondition: exactly one invocation of the relocated target is scheduled.

◆ stlab_v2_low_executor_submit()

void stlab::v2::stlab_v2_low_executor_submit ( const unsigned char * task_abi_guard,
const stlab_v2_task_concept * vtable,
stlab_v2_task_proc invoke,
void * source )
noexcept

Submits one task to the shared low-priority executor.

  • Precondition: task_abi_guard points to detail::current_task_storage_abi_guard::value.
  • Precondition: vtable and invoke are not nullptr.
  • Precondition: source is the relocation_source() of a live task<void() noexcept> sharing vtable/invoke, valid for the duration of this call.
  • Postcondition: exactly one invocation of the relocated target is scheduled.

◆ stlab_v2_notify_default_executor_before_waiting()

void stlab::v2::stlab_v2_notify_default_executor_before_waiting ( )
noexcept

Notifies the shared default executor that the calling thread is about to wait.

The portable task system may add a worker to preserve forward progress. Task systems with operating-system-managed blocking compensation perform no action.