• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# condition_variable.h
2
3<!--Kit: Function Flow Runtime Kit-->
4<!--Subsystem: Resourceschedule-->
5<!--Owner: @chuchihtung; @yanleo-->
6<!--Designer: @geoffrey_guo; @huangyouzhong-->
7<!--Tester: @lotsof; @sunxuhao-->
8<!--Adviser: @foryourself-->
9
10## 概述
11
12声明条件变量的C接口。
13
14**库:** libffrt.z.so
15
16**系统能力:** SystemCapability.Resourceschedule.Ffrt.Core
17
18**起始版本:** 10
19
20**相关模块:** [FFRT](capi-ffrt.md)
21
22## 汇总
23
24### 函数
25
26| 名称 | 描述 |
27| -- | -- |
28| [FFRT_C_API int ffrt_cond_init(ffrt_cond_t* cond, const ffrt_condattr_t* attr)](#ffrt_cond_init) | 初始化条件变量。 |
29| [FFRT_C_API int ffrt_cond_signal(ffrt_cond_t* cond)](#ffrt_cond_signal) | 唤醒阻塞在条件变量上的一个任务。 |
30| [FFRT_C_API int ffrt_cond_broadcast(ffrt_cond_t* cond)](#ffrt_cond_broadcast) | 唤醒阻塞在条件变量上的所有任务。 |
31| [FFRT_C_API int ffrt_cond_wait(ffrt_cond_t* cond, ffrt_mutex_t* mutex)](#ffrt_cond_wait) | 条件变量等待函数,条件变量不满足时阻塞当前任务。 |
32| [FFRT_C_API int ffrt_cond_timedwait(ffrt_cond_t* cond, ffrt_mutex_t* mutex, const struct timespec* time_point)](#ffrt_cond_timedwait) | 条件变量超时等待函数,条件变量不满足时阻塞当前任务,超时等待返回。如果达到最大等待时间点时没有调用ffrt_cond_signal或ffrt_cond_broadcast函数解除线程阻塞,则线程会被自动解除阻塞。 |
33| [FFRT_C_API int ffrt_cond_destroy(ffrt_cond_t* cond)](#ffrt_cond_destroy) | 销毁条件变量。 |
34
35## 函数说明
36
37### ffrt_cond_init()
38
39```
40FFRT_C_API int ffrt_cond_init(ffrt_cond_t* cond, const ffrt_condattr_t* attr)
41```
42
43**描述**
44
45初始化条件变量。
46
47**起始版本:** 10
48
49
50**参数:**
51
52| 参数项 | 描述 |
53| -- | -- |
54| [ffrt_cond_t](capi-ffrt-ffrt-cond-t.md)* cond | 条件变量指针。 |
55| [const ffrt_condattr_t](capi-ffrt-ffrt-condattr-t.md)* attr | 条件变量属性指针。 |
56
57**返回:**
58
59| 类型 | 说明 |
60| -- | -- |
61| FFRT_C_API int | 初始化条件变量成功返回ffrt_success,<br>          初始化条件变量失败返回ffrt_error_inval。 |
62
63### ffrt_cond_signal()
64
65```
66FFRT_C_API int ffrt_cond_signal(ffrt_cond_t* cond)
67```
68
69**描述**
70
71唤醒阻塞在条件变量上的一个任务。
72
73**起始版本:** 10
74
75
76**参数:**
77
78| 参数项 | 描述 |
79| -- | -- |
80| [ffrt_cond_t](capi-ffrt-ffrt-cond-t.md)* cond | 条件变量指针。 |
81
82**返回:**
83
84| 类型 | 说明 |
85| -- | -- |
86| FFRT_C_API int | 唤醒成功返回ffrt_success,<br>          唤醒失败返回ffrt_error_inval。 |
87
88### ffrt_cond_broadcast()
89
90```
91FFRT_C_API int ffrt_cond_broadcast(ffrt_cond_t* cond)
92```
93
94**描述**
95
96唤醒阻塞在条件变量上的所有任务。
97
98**起始版本:** 10
99
100
101**参数:**
102
103| 参数项 | 描述 |
104| -- | -- |
105| [ffrt_cond_t](capi-ffrt-ffrt-cond-t.md)* cond | 条件变量指针。 |
106
107**返回:**
108
109| 类型 | 说明 |
110| -- | -- |
111| FFRT_C_API int | 唤醒成功返回ffrt_success,<br>          唤醒失败返回ffrt_error_inval。 |
112
113### ffrt_cond_wait()
114
115```
116FFRT_C_API int ffrt_cond_wait(ffrt_cond_t* cond, ffrt_mutex_t* mutex)
117```
118
119**描述**
120
121条件变量等待函数,条件变量不满足时阻塞当前任务。
122
123**起始版本:** 10
124
125
126**参数:**
127
128| 参数项 | 描述 |
129| -- | -- |
130| [ffrt_cond_t](capi-ffrt-ffrt-cond-t.md)* cond | 条件变量指针。 |
131| [ffrt_mutex_t](capi-ffrt-ffrt-mutex-t.md)* mutex | mutex指针。 |
132
133**返回:**
134
135| 类型 | 说明 |
136| -- | -- |
137| FFRT_C_API int | 等待后被成功唤醒返回ffrt_success,<br>          等待失败返回ffrt_error_inval。 |
138
139### ffrt_cond_timedwait()
140
141```
142FFRT_C_API int ffrt_cond_timedwait(ffrt_cond_t* cond, ffrt_mutex_t* mutex, const struct timespec* time_point)
143```
144
145**描述**
146
147条件变量超时等待函数,条件变量不满足时阻塞当前任务,超时等待返回。如果达到最大等待时间点时没有调用ffrt_cond_signal或ffrt_cond_broadcast函数解除线程阻塞,则线程会被自动解除阻塞。
148
149**起始版本:** 10
150
151
152**参数:**
153
154| 参数项 | 描述 |
155| -- | -- |
156| [ffrt_cond_t](capi-ffrt-ffrt-cond-t.md)* cond | 条件变量指针。 |
157| [ffrt_mutex_t](capi-ffrt-ffrt-mutex-t.md)* mutex | mutex指针。 |
158| const struct timespec* time_point | 最大等待到的时间点,超过这个时间点等待返回。 |
159
160**返回:**
161
162| 类型 | 说明 |
163| -- | -- |
164| FFRT_C_API int | 等待后被成功唤醒返回ffrt_success,<br>          等待超时返回ffrt_error_timedout,<br>          等待失败ffrt_error_inval。 |
165
166### ffrt_cond_destroy()
167
168```
169FFRT_C_API int ffrt_cond_destroy(ffrt_cond_t* cond)
170```
171
172**描述**
173
174销毁条件变量。
175
176**起始版本:** 10
177
178
179**参数:**
180
181| 参数项 | 描述 |
182| -- | -- |
183| [ffrt_cond_t](capi-ffrt-ffrt-cond-t.md)* cond | 条件变量指针。 |
184
185**返回:**
186
187| 类型 | 说明 |
188| -- | -- |
189| FFRT_C_API int | 销毁条件变量成功返回ffrt_success,<br>销毁条件变量失败返回ffrt_error_inval。 |
190
191
192