Функция epoll_insert
вызывается sys_epoll_ctl
.Детальная функция о epoll_insert
Есть некоторые ключевые шаги в epoll_insert
функции:
Присвоить таблицу опроса, используя функцию обратного вызова очереди:
ep_ptable_queue_proc
И будет называть
file->f_op->poll
Если файл уже «готов», затем мы отбрасываем его в готовом виде
/* If the file is already "ready" we drop it inside the ready list */ if ((revents & event->events) && !ep_is_linked(&epi->rdllink)) { list_add_tail(&epi->rdllink, &ep->rdllist); /* Notify waiting tasks that events are available */ if (waitqueue_active(&ep->wq)) wake_up_locked(&ep->wq); if (waitqueue_active(&ep->poll_wait)) pwake++; }
Я не понимаю, почему проверить, готов ли файл в epoll_insert
функции. Должны ли мы проверить его в функции ep_poll_callback
?