1、poll机制概述
使用休眠和唤醒机制等待某个事件发生,方法简单。但是不能做其他事情。因为如果一个事件等待很久才发生,那么我就要一直等待。为了避免这种事情的发生,我们给他加上一个超时时间,这就是poll机制。
2、实现流程
其核心的实现流程如下:
但是在内核中,他具体的实现方式如下:
驱动程序部分:
在应用程序中,可以指定poll的休眠时间:
总结:
对于POLL机制的使用,对于驱动编写人员来说,只是做了两件事情:
1、使用poll_wait()函数,将线程放入等待队列(但是未休眠)
2、通过对poll_wait()函数的返回值进行处理,判断是返回数据还是休眠。
在用用程序中,我们只需要调用poll()函数即可。在poll函数中,我们可以指定超时时间。