1. 概念
Linux提供完成量(Completion),用于一个执行单元等待另一个执行单元执行完某事。
2. 相关操作
(1)定义完成量:
struct completion my_completion;
(2)初始化完成量:
/* 初始化my_completion这个完成量的值为0(即没有完成的状态) */
init_completion(&my_completion);
/* 重新初始化my_completion这个完成量的值为0 */
reinit_completion(&my_completion);
(3)等待完成量:
/* 等待一个完成量被唤醒 */
void wait_for_completion(struct completion *c);
(4)唤醒完成量:
/* 唤醒完成量:唤醒一个等待的执行单元 */
void complete(struct completion *c);
/* 唤醒完成量:释放所有等待同一完成量的执行单元 */
void complete_all(struct completion *c);