天天看点

锁(三) 完成量

完成量
用于一个执行单元等待另一个执行单元执行完某事。
linux中完成量的主要操作
    1,定义完成量  struct completion {
                                            unsigned int done;
                                            wait_queue_head_t wait;
                                  };                                 struct completion my_completion;
    2,初始化completion    init_competion(&my_completion);  或者通过宏
           完成定义并初始化 DECLARE_COMPLETION(my_completion);
    3,等待一个完成量被唤醒  void wait_for_completion(struct completion * c);
    4,唤醒一个等待的执行单元  void complete(struct completion * c);
           释放所有等待同一完成量的执行单元  void complete_all(struct completion * c);      

继续阅读