• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# queue.h
2
3
4## Overview
5
6The **queue.h** file declares the queue interfaces in C.
7
8**File to include**: <ffrt/queue.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### Types
23
24| Name| Description|
25| -------- | -------- |
26| typedef void \* [ffrt_queue_t](_f_f_r_t.md#ffrt_queue_t) | Defines the handle to a queue. |
27
28
29### Enums
30
31| Name| Description|
32| -------- | -------- |
33| [ffrt_queue_type_t](_f_f_r_t.md#ffrt_queue_type_t) {<br>ffrt_queue_serial,<br>ffrt_queue_concurrent,<br>ffrt_queue_max<br>} | Enumerates the queue types. |
34
35
36### Functions
37
38| Name| Description|
39| -------- | -------- |
40| FFRT_C_API int [ffrt_queue_attr_init](_f_f_r_t.md#ffrt_queue_attr_init) ([ffrt_queue_attr_t](ffrt__queue__attr__t.md) \*attr) | Initializes the queue attribute. |
41| FFRT_C_API void [ffrt_queue_attr_destroy](_f_f_r_t.md#ffrt_queue_attr_destroy) ([ffrt_queue_attr_t](ffrt__queue__attr__t.md) \*attr) | Destroys the queue attribute. |
42| FFRT_C_API void [ffrt_queue_attr_set_qos](_f_f_r_t.md#ffrt_queue_attr_set_qos) ([ffrt_queue_attr_t](ffrt__queue__attr__t.md) \*attr, [ffrt_qos_t](_f_f_r_t.md#ffrt_qos_t) qos) | Sets the queue QoS. |
43| FFRT_C_API [ffrt_qos_t](_f_f_r_t.md#ffrt_qos_t) [ffrt_queue_attr_get_qos](_f_f_r_t.md#ffrt_queue_attr_get_qos) (const [ffrt_queue_attr_t](ffrt__queue__attr__t.md) \*attr) | Obtains the queue QoS. |
44| FFRT_C_API void [ffrt_queue_attr_set_timeout](_f_f_r_t.md#ffrt_queue_attr_set_timeout) ([ffrt_queue_attr_t](ffrt__queue__attr__t.md) \*attr, uint64_t timeout_us) | Sets the queue timeout. |
45| FFRT_C_API uint64_t [ffrt_queue_attr_get_timeout](_f_f_r_t.md#ffrt_queue_attr_get_timeout) (const [ffrt_queue_attr_t](ffrt__queue__attr__t.md) \*attr) | Obtains the queue timeout. |
46| FFRT_C_API void [ffrt_queue_attr_set_callback](_f_f_r_t.md#ffrt_queue_attr_set_callback) ([ffrt_queue_attr_t](ffrt__queue__attr__t.md) \*attr, [ffrt_function_header_t](ffrt__function__header__t.md) \*f) | Sets a callback that is invoked when a queue task times out. |
47| FFRT_C_API [ffrt_function_header_t](ffrt__function__header__t.md) \* [ffrt_queue_attr_get_callback](_f_f_r_t.md#ffrt_queue_attr_get_callback) (const [ffrt_queue_attr_t](ffrt__queue__attr__t.md) \*attr) | Obtains the callback that is invoked when a queue task times out. |
48| FFRT_C_API void [ffrt_queue_attr_set_max_concurrency](_f_f_r_t.md#ffrt_queue_attr_set_max_concurrency) ([ffrt_queue_attr_t](ffrt__queue__attr__t.md) \*attr, const int max_concurrency) | Sets the maximum concurrency for a queue, which must be a concurrent queue. |
49| FFRT_C_API int [ffrt_queue_attr_get_max_concurrency](_f_f_r_t.md#ffrt_queue_attr_get_max_concurrency) (const [ffrt_queue_attr_t](ffrt__queue__attr__t.md) \*attr) | Obtains the maximum concurrency of a queue, which must be a concurrent queue. |
50| FFRT_C_API [ffrt_queue_t](_f_f_r_t.md#ffrt_queue_t) [ffrt_queue_create](_f_f_r_t.md#ffrt_queue_create) ([ffrt_queue_type_t](_f_f_r_t.md#ffrt_queue_type_t) type, const char \*name, const [ffrt_queue_attr_t](ffrt__queue__attr__t.md) \*attr) | Creates a queue. |
51| FFRT_C_API void [ffrt_queue_destroy](_f_f_r_t.md#ffrt_queue_destroy) ([ffrt_queue_t](_f_f_r_t.md#ffrt_queue_t) queue) | Destroys a queue. |
52| FFRT_C_API void [ffrt_queue_submit](_f_f_r_t.md#ffrt_queue_submit) ([ffrt_queue_t](_f_f_r_t.md#ffrt_queue_t) queue, [ffrt_function_header_t](ffrt__function__header__t.md) \*f, const [ffrt_task_attr_t](ffrt__task__attr__t.md) \*attr) | Submits a task to a queue. |
53| FFRT_C_API [ffrt_task_handle_t](_f_f_r_t.md#ffrt_task_handle_t) [ffrt_queue_submit_h](_f_f_r_t.md#ffrt_queue_submit_h) ([ffrt_queue_t](_f_f_r_t.md#ffrt_queue_t) queue, [ffrt_function_header_t](ffrt__function__header__t.md) \*f, const [ffrt_task_attr_t](ffrt__task__attr__t.md) \*attr) | Submits a task to a queue, and obtains the task handle. |
54| FFRT_C_API void [ffrt_queue_wait](_f_f_r_t.md#ffrt_queue_wait) ([ffrt_task_handle_t](_f_f_r_t.md#ffrt_task_handle_t) handle) | Waits until a task in the queue is complete. |
55| FFRT_C_API int [ffrt_queue_cancel](_f_f_r_t.md#ffrt_queue_cancel) ([ffrt_task_handle_t](_f_f_r_t.md#ffrt_task_handle_t) handle) | Cancels a task in the queue. |
56| FFRT_C_API [ffrt_queue_t](_f_f_r_t.md#ffrt_queue_t) [ffrt_get_main_queue](_f_f_r_t.md#ffrt_get_main_queue) (void) | Obtains the main thread queue. |
57| FFRT_C_API [ffrt_queue_t](_f_f_r_t.md#ffrt_queue_t) [ffrt_get_current_queue](_f_f_r_t.md#ffrt_get_current_queue) (void) | Obtains the ArkTS Worker thread queue. |
58