executor.h¶
-
typedef mmdeploy_value_t (*mmdeploy_then_fn_t)(mmdeploy_value_t, void*)¶
-
typedef mmdeploy_value_t (*mmdeploy_then_fn_v2_t)(mmdeploy_value_t*, void*)¶
-
typedef int (*mmdeploy_then_fn_v3_t)(mmdeploy_value_t *input, mmdeploy_value_t *output, void*)¶
-
typedef struct mmdeploy_sender *mmdeploy_sender_t¶
-
typedef struct mmdeploy_scheduler *mmdeploy_scheduler_t¶
-
typedef mmdeploy_sender_t (*mmdeploy_let_value_fn_t)(mmdeploy_value_t, void*)¶
-
mmdeploy_scheduler_t mmdeploy_executor_inline()¶
-
mmdeploy_scheduler_t mmdeploy_executor_system_pool()¶
-
mmdeploy_scheduler_t mmdeploy_executor_create_thread_pool(int num_threads)¶
Create a thread pool with the given number of worker threads
- 参数
num_threads – [in]
- 返回
the handle to the created thread pool
-
mmdeploy_scheduler_t mmdeploy_executor_create_thread()¶
-
mmdeploy_scheduler_t mmdeploy_executor_dynamic_batch(mmdeploy_scheduler_t scheduler, int max_batch_size, int timeout)¶
-
int mmdeploy_scheduler_destroy(mmdeploy_scheduler_t scheduler)¶
-
mmdeploy_sender_t mmdeploy_sender_copy(mmdeploy_sender_t input)¶
Create a copy of a copyable sender. Only senders created by mmdeploy_executor_split is copyable for now.
- 参数
input – [in] copyable sender,
- 返回
the sender created, or nullptr if the sender is not copyable
-
int mmdeploy_sender_destroy(mmdeploy_sender_t sender)¶
Destroy a sender, notice that all sender adapters will consume input senders, only unused senders should be destroyed using this function.
- 参数
input – [in]
-
mmdeploy_sender_t mmdeploy_executor_just(mmdeploy_value_t value)¶
Create a sender that sends the provided value.
- 参数
value – [in]
- 返回
created sender
-
mmdeploy_sender_t mmdeploy_executor_schedule(mmdeploy_scheduler_t scheduler)¶
- 参数
scheduler – [in]
- 返回
the sender created
-
mmdeploy_sender_t mmdeploy_executor_transfer_just(mmdeploy_scheduler_t scheduler, mmdeploy_value_t value)¶
-
mmdeploy_sender_t mmdeploy_executor_transfer(mmdeploy_sender_t input, mmdeploy_scheduler_t scheduler)¶
Transfer the execution to the execution agent of the provided scheduler
- 参数
input – [in]
scheduler – [in]
- 返回
the sender created
-
mmdeploy_sender_t mmdeploy_executor_on(mmdeploy_scheduler_t scheduler, mmdeploy_sender_t input)¶
-
mmdeploy_sender_t mmdeploy_executor_then(mmdeploy_sender_t input, mmdeploy_then_fn_t fn, void *context)¶
-
mmdeploy_sender_t mmdeploy_executor_let_value(mmdeploy_sender_t input, mmdeploy_let_value_fn_t fn, void *context)¶
-
mmdeploy_sender_t mmdeploy_executor_split(mmdeploy_sender_t input)¶
Convert the input sender into a sender that is copyable via mmdeploy_sender_copy. Notice that this function doesn’t make the sender multi-shot, it just return a sender that is copyable.
- 参数
input – [in]
- 返回
the sender that is copyable
-
mmdeploy_sender_t mmdeploy_executor_when_all(mmdeploy_sender_t inputs[], int32_t n)¶
-
mmdeploy_sender_t mmdeploy_executor_ensure_started(mmdeploy_sender_t input)¶
-
int mmdeploy_executor_start_detached(mmdeploy_sender_t input)¶
-
mmdeploy_value_t mmdeploy_executor_sync_wait(mmdeploy_sender_t input)¶
-
int mmdeploy_executor_sync_wait_v2(mmdeploy_sender_t input, mmdeploy_value_t *output)¶
-
void mmdeploy_executor_execute(mmdeploy_scheduler_t scheduler, void (*fn)(void*), void *context)¶