QQ在线咨询
售前咨询热线
15821572819
售后咨询热线
15821572819

Completion


completion是一种轻量级的机制,它允许一个线程告诉另一个线程某个工作已经完成。
completion的典型应用是模块退出时的内核线程终止。

代码必须包含<linux/completion.h>。使用的代码如下: 
 
1.创建completion
    DECLARE_COMPLETION(my_completion);/* 创建completion(声明+初始化) */
    
    如果必须动态的创建和初始化completion使用下面的方法:
    struct completion my_completion;/* 动态声明completion 结构体*/
    void init_completion(&my_completion);/*动态初始化completion*/

2.等待completion
    void wait_for_completion(struct completion *c);/* 等待completion */

3.唤醒completion

    void complete(struct completion *c);/*唤醒一个等待completion的线程*/
    void complete_all(struct completion *c);/*唤醒所有等待completion的线程*/

注意:/*如果未使用completion_all,completion可重复使用;否则必须使用以下函数重新初始化completion*/
      INIT_COMPLETION(struct completion c);/*快速重新初始化completion*/




注:本文转载自csdn,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如有侵权行为,请联系我们,我们会及时删除。
上一篇 下一篇

分享