Jan Hudec wrote:
IIRC poll_wait is not a wake-up at all. It ends in add_wait_queue (I am looking at 2.4.19, but I don't think poll logic changed that much). IIRC the poll logic goes as follows: sys_poll calls ->poll method on all descriptors. These call poll_wait to set up wait queues and then check the current state. If all ->poll methods return 0, sys_poll schedule()s and goes to call the methods again. If some return nonzero or time is up, it discards the queues and returns.
You're right. I've just got messed up. 8) -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/