1# task.h 2 3 4## Overview 5 6The **task.h** file declares the task interfaces in C. 7 8**File to include**: <ffrt/task.h> 9 10**Library**: libffrt.z.so 11 12**System capability**: SystemCapability.Resourceschedule.Ffrt.Core 13 14**Since**: 10 15 16**Related module**: [FFRT](_f_f_r_t.md) 17 18 19## Summary 20 21 22### Functions 23 24| Name| Description| 25| -------- | -------- | 26| FFRT_C_API int [ffrt_task_attr_init](_f_f_r_t.md#ffrt_task_attr_init) ([ffrt_task_attr_t](ffrt__task__attr__t.md) \*attr) | Initializes a task attribute. | 27| FFRT_C_API void [ffrt_task_attr_set_name](_f_f_r_t.md#ffrt_task_attr_set_name) ([ffrt_task_attr_t](ffrt__task__attr__t.md) \*attr, const char \*name) | Sets a task name. | 28| FFRT_C_API const char \* [ffrt_task_attr_get_name](_f_f_r_t.md#ffrt_task_attr_get_name) (const [ffrt_task_attr_t](ffrt__task__attr__t.md) \*attr) | Obtains a task name. | 29| FFRT_C_API void [ffrt_task_attr_destroy](_f_f_r_t.md#ffrt_task_attr_destroy) ([ffrt_task_attr_t](ffrt__task__attr__t.md) \*attr) | Destroys a task attribute. | 30| FFRT_C_API void [ffrt_task_attr_set_qos](_f_f_r_t.md#ffrt_task_attr_set_qos) ([ffrt_task_attr_t](ffrt__task__attr__t.md) \*attr, [ffrt_qos_t](_f_f_r_t.md#ffrt_qos_t) qos) | Sets the task QoS. | 31| FFRT_C_API [ffrt_qos_t](_f_f_r_t.md#ffrt_qos_t) [ffrt_task_attr_get_qos](_f_f_r_t.md#ffrt_task_attr_get_qos) (const [ffrt_task_attr_t](ffrt__task__attr__t.md) \*attr) | Obtains the task QoS. | 32| FFRT_C_API void [ffrt_task_attr_set_delay](_f_f_r_t.md#ffrt_task_attr_set_delay) ([ffrt_task_attr_t](ffrt__task__attr__t.md) \*attr, uint64_t delay_us) | Sets the task delay time. | 33| FFRT_C_API uint64_t [ffrt_task_attr_get_delay](_f_f_r_t.md#ffrt_task_attr_get_delay) (const [ffrt_task_attr_t](ffrt__task__attr__t.md) \*attr) | Obtains the task delay time. | 34| FFRT_C_API void [ffrt_task_attr_set_queue_priority](_f_f_r_t.md#ffrt_task_attr_set_queue_priority) ([ffrt_task_attr_t](ffrt__task__attr__t.md) \*attr, [ffrt_queue_priority_t](_f_f_r_t.md#ffrt_queue_priority_t) priority) | Sets the task priority in the queue. | 35| FFRT_C_API [ffrt_queue_priority_t](_f_f_r_t.md#ffrt_queue_priority_t) [ffrt_task_attr_get_queue_priority](_f_f_r_t.md#ffrt_task_attr_get_queue_priority) (const [ffrt_task_attr_t](ffrt__task__attr__t.md) \*attr) | Obtains the task priority in the queue. | 36| FFRT_C_API void [ffrt_task_attr_set_stack_size](_f_f_r_t.md#ffrt_task_attr_set_stack_size) ([ffrt_task_attr_t](ffrt__task__attr__t.md) \*attr, uint64_t size) | Sets the task stack size. | 37| FFRT_C_API uint64_t [ffrt_task_attr_get_stack_size](_f_f_r_t.md#ffrt_task_attr_get_stack_size) (const [ffrt_task_attr_t](ffrt__task__attr__t.md) \*attr) | Obtains the task stack size. | 38| FFRT_C_API int [ffrt_this_task_update_qos](_f_f_r_t.md#ffrt_this_task_update_qos) ([ffrt_qos_t](_f_f_r_t.md#ffrt_qos_t) qos) | Updates the task QoS. | 39| FFRT_C_API [ffrt_qos_t](_f_f_r_t.md#ffrt_qos_t) [ffrt_this_task_get_qos](_f_f_r_t.md#ffrt_this_task_get_qos) (void) | Obtains the task QoS. | 40| FFRT_C_API uint64_t [ffrt_this_task_get_id](_f_f_r_t.md#ffrt_this_task_get_id) (void) | Obtains the ID of this task. | 41| FFRT_C_API void \* [ffrt_alloc_auto_managed_function_storage_base](_f_f_r_t.md#ffrt_alloc_auto_managed_function_storage_base) ([ffrt_function_kind_t](_f_f_r_t.md#ffrt_function_kind_t) kind) | Applies for memory for the function execution structure. | 42| FFRT_C_API void [ffrt_submit_base](_f_f_r_t.md#ffrt_submit_base) ([ffrt_function_header_t](ffrt__function__header__t.md) \*f, const [ffrt_deps_t](ffrt__deps__t.md) \*in_deps, const [ffrt_deps_t](ffrt__deps__t.md) \*out_deps, const [ffrt_task_attr_t](ffrt__task__attr__t.md) \*attr) | Submits a task. | 43| FFRT_C_API [ffrt_task_handle_t](_f_f_r_t.md#ffrt_task_handle_t) [ffrt_submit_h_base](_f_f_r_t.md#ffrt_submit_h_base) ([ffrt_function_header_t](ffrt__function__header__t.md) \*f, const [ffrt_deps_t](ffrt__deps__t.md) \*in_deps, const [ffrt_deps_t](ffrt__deps__t.md) \*out_deps, const [ffrt_task_attr_t](ffrt__task__attr__t.md) \*attr) | Submits a task, and obtains the task handle. | 44| FFRT_C_API uint32_t [ffrt_task_handle_inc_ref](_f_f_r_t.md#ffrt_task_handle_inc_ref) ([ffrt_task_handle_t](_f_f_r_t.md#ffrt_task_handle_t) handle) | Increases the number of task handle references. | 45| FFRT_C_API uint32_t [ffrt_task_handle_dec_ref](_f_f_r_t.md#ffrt_task_handle_dec_ref) ([ffrt_task_handle_t](_f_f_r_t.md#ffrt_task_handle_t) handle) | Decreases the number of task handle references. | 46| FFRT_C_API void [ffrt_task_handle_destroy](_f_f_r_t.md#ffrt_task_handle_destroy) ([ffrt_task_handle_t](_f_f_r_t.md#ffrt_task_handle_t) handle) | Destroys a task handle. | 47| FFRT_C_API void [ffrt_wait_deps](_f_f_r_t.md#ffrt_wait_deps) (const [ffrt_deps_t](ffrt__deps__t.md) \*deps) | Waits until the dependent tasks are complete. | 48| FFRT_C_API void [ffrt_wait](_f_f_r_t.md#ffrt_wait) (void) | Waits until all submitted tasks are complete. | 49