Friday, November 7, 2008

Poll() or Select() system call

Poll_wait()

When ever an application call the select or poll with an fdset,the kernel inovkes the poll method of all files referenced by the system call, passing the same poll_table to each of them. So all the fops->poll will get called. poll_wait call will add the wait queue to the common poll_table. If none of the drivers being polled indicates that I/O can occur without blocking, the poll call simply sleeps until one of the wait queues it is on wakes it up. When one of the wait queue wakes up, the kernel call the poll() function concerning that driver again.

No comments: