ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
19 мая
339726 Топик полностью
AD (09.07.2012 12:31, просмотров: 407) ответил =AlexD= на Бугога, select это надстройка над poll, которое есть полинг события с интервалом времени. По настоящему асинхронны в линухе только специальные функции асинхронного ввода-вывода.
Ерунда Почитай исходники ядра или любую книжку по драйверам линукса. poll в драйвере делает следующее 1. Call poll_wait on one or more wait queues that could indicate a change in the poll status. If no file descriptors are currently available for I/O, the kernel causes the process to wait on the wait queues for all file descriptors passed to the system call. 2. Return a bit mask describing the operations (if any) that could be immediately performed without blocking. schedule_timeout(__timeout) по ссылке нужен для того, чтобы проснуться по истечении общего таймаута, если не произошло нужных событий. Это, разумеется, не отменяет синхронности poll/select, которая в данном случае означает всего лишь отсутствие асинхронных callback'ов (signal).