wait_for_completion函数功能描述:此函数用于阻塞当前进程,等待其他进程的执行结束,被等待进程保存在输入参数的wait字段所代表的等待队列中,只有当等待队列中的进程被函数complete( )或complete_all( )唤醒之后,等待才有可能结束,当前的进程才能够继续执行,否则会一直等待。
此函数将当前进程置于不可中断的等待状态,所以等待不能够强制结束,并且等待的时间是MAX_SCHEDULE_TIMEOUT个系统时钟节拍,这是一个很长的时钟节拍,几乎是不会因等待超时而结束的。
wait_for_completion文件包含
#include
wait_for_completion函数定义
在内核源码中的位置:linux-3.19.3/kernel/sched/completion.c
函数定义格式:
void wait_for_completion(struct completion *)
wait_for_completion输入参数说明
此函数的输入参数是struct completion结构体类型的指针,包含一个等待队列信息及等待队列的状态信息,等待队列的状态代表此等待队列是否被唤醒过,其定义及详细解释参考函数complete( )输入参数说明部分。
wait_for_completion返回参数说明
此函数的返回结果是void类型的变量,即不返回任何类型的结果。
wait_for_completion实例解析
编写测试文件:wait_for_completion.c
头文件引用及全局变量定义:
/*头文件引用*/
#inc