class executor_t API
Classexecutor_tOwns one executor; an empty one runs every call on the caller's own thread.8
executor_t
executor_t() noexcept=default; executor_t(executor_t && other) noexcept; executor_t(executor_t const &)=delete; operator=
executor_t & operator=(executor_t && other) noexcept; executor_t & operator=(executor_t const &)=delete; ~executor_t
~executor_t() noexcept; drainWaits for every call submitted before the drain began, then sets the mood the executor adopts whenever it next goes idle.
outcome drain(usearch_executor_drain_t arguments = {}) noexcept; Statuses
usearch_status_contended_kA call running on the executor holds it, as for a drain from that call's own progress handler, predicate or host function.usearch_status_device_kA GPU executor with no vendor behind it.
for_ramSpawns host threads for RAM-resident indexes, interleaved across the compute domains local to the memory domains options names.
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.
outcome<executor_t> on_pool(
usearch_executor_on_pool_t options) noexcept; Statuses
usearch_status_unsupported_kAlways, as borrowed pools are not wired yet.
for_vramOpens one submission stream on every distinct device options names.
outcome<executor_t> for_vram(
usearch_executor_for_vram_t options = {}) noexcept; Statuses
usearch_status_unsupported_kBorrowed streams, which are not wired yet.usearch_status_device_kAn ordinal past the listing, or no device named.usearch_status_config_mismatch_kDevices of more than one vendor.
for_nvmeSpawns host threads for NVMe-resident indexes, one submission ring apiece.
outcome<executor_t> for_nvme(
usearch_executor_for_nvme_t options = {}) noexcept; Statuses
usearch_status_invalid_argument_kNULLpaths for a nonzero count, or an unknown engine class.usearch_status_config_mismatch_kKernel paths mixed with transport identifiers, or SPDK pinned over kernel paths or a kernel engine over transport identifiers.usearch_status_unsupported_kTransport identifiers in a build without SPDK, or a pinned engine this build lacks.
Functions
run_to_completionRuns verb to completion with arguments, which name everything but the outcome.
template <typename arguments_type_>
outcome run_to_completion(
void(*)(arguments_type_ *) verb,
arguments_type_ & arguments) noexcept;