C++ · Executors

Executors

#include <usearch/dense_index.hpp> 3.0.0-rc.1 · 4c3e5023

API

Classexecutor_tOwns one executor; an empty one runs every call on the caller's own thread.8
dense_index.hpp:66 ↗
class executor_t
executor_t
dense_index.hpp:68 ↗
executor_t() noexcept=default;
executor_t(executor_t && other) noexcept;
executor_t(executor_t const &)=delete;
operator=
dense_index.hpp:70 ↗
executor_t & operator=(executor_t && other) noexcept;
executor_t & operator=(executor_t const &)=delete;
~executor_t
dense_index.hpp:73 ↗
~executor_t() noexcept;
drainWaits for every call submitted before the drain began, then sets the mood the executor adopts whenever it next goes idle.
dense_index.hpp:127 ↗
outcome drain(usearch_executor_drain_t arguments = {}) noexcept;

Statuses

for_ramSpawns host threads for RAM-resident indexes, interleaved across the compute domains local to the memory domains options names.
dense_index.hpp:77 ↗
outcome<executor_t> for_ram(
    usearch_executor_for_ram_t options = {}) noexcept;
on_poolWraps a borrowed ForkUnion pool, so several libraries in one process share its threads.
dense_index.hpp:87 ↗
outcome<executor_t> on_pool(
    usearch_executor_on_pool_t options) noexcept;

Statuses

for_vramOpens one submission stream on every distinct device options names.
dense_index.hpp:99 ↗
outcome<executor_t> for_vram(
    usearch_executor_for_vram_t options = {}) noexcept;

Statuses

for_nvmeSpawns host threads for NVMe-resident indexes, one submission ring apiece.
dense_index.hpp:114 ↗
outcome<executor_t> for_nvme(
    usearch_executor_for_nvme_t options = {}) noexcept;

Statuses

Functions

run_to_completionRuns verb to completion with arguments, which name everything but the outcome.
dense_index.hpp:57 ↗
template <typename arguments_type_>
outcome run_to_completion(
    void(*)(arguments_type_ *) verb,
    arguments_type_ & arguments) noexcept;