¿Puede epoll
(en Linux) ser de alguna manera útil para archivos regulares? Sé que se usa principalmente con enchufes pero solo me pregunto.Epoll en archivos regulares
15
A
Respuesta
11
No realmente. epoll
solo tiene sentido para los descriptores de archivos que normalmente mostrarían un comportamiento de bloqueo en lectura/escritura, como las tuberías y los zócalos. Los descriptores de archivos normales siempre devolverán un resultado o un fin de archivo más o menos de inmediato, por lo que epoll
no les haría nada útil.
11
creo, se producirá un error en epoll_ctl con EPERM:
EPERM The target file fd does not support epoll.
si el archivo no tiene interfaz poll()
.
El código real es http://lxr.linux.no/#linux+v3.1/fs/eventpoll.c#L1373
1373 /* The target file descriptor must support poll */
1374 error = -EPERM;
1375 if (!tfile->f_op || !tfile->f_op->poll)
1376 goto error_tgt_fput;
1377
Cuestiones relacionadas
- 1. epoll rendimiento
- 2. ¿Hay equivalente epoll en Java?
- 3. epoll VS select
- 4. Renombrar archivos usando expresiones regulares en Linux
- 5. Epoll y apagado unidireccional remoto
- 6. Boost Asio en Linux sin usar Epoll
- 7. Un problema de epoll multiproceso en Linux
- 8. select vs poll vs epoll
- 9. Conexión asíncrona y desconexión con epoll (Linux)
- 10. ¿Falta algo o simplemente no entiendo epoll?
- 11. no bloquear tcp conectar con epoll
- 12. Comprobación de extensiones de archivos en PHP con expresiones regulares
- 13. ¿Cómo usar expresiones regulares en wget para rechazar archivos?
- 14. ¿Por qué select.select() funciona con archivos de disco pero no con epoll()?
- 15. Podría recomendar algunas guías sobre Epoll en Linux
- 16. Advertencias de select/poll vs. reactores epoll en Twisted
- 17. select(), poll() o epoll()? para el atributo sysfs
- 18. revisitando "cómo se usa aio y epoll juntos"
- 19. Modelo de subprocesamiento y escalado para servidor TCP con epoll
- 20. Expresiones regulares en Puntuación
- 21. expresiones regulares en Vimscript
- 22. Expresiones regulares en J2ME
- 23. Expresiones regulares en OCaml
- 24. Expresiones regulares en C
- 25. Expresiones regulares en findstr
- 26. expresiones regulares en Javascript con jQuery Contiene expresiones regulares extensión
- 27. expresiones regulares (expresiones regulares), reemplace la segunda aparición en javascript
- 28. Operador Tilde en expresiones regulares
- 29. Expresiones regulares en procedimientos almacenados
- 30. Expresiones regulares en C++ STL
Es decir, funciona, aunque sin sentido: "La función de sondeo() apoyará archivos normales ... archivos regulares serán siempre sondear TRUE para la lectura y la escritura." http://pubs.opengroup.org/onlinepubs/009695399/functions/poll.html La página man de epoll (4) dice: "cuando se usa como una interfaz de disparo por nivel, epoll es, por supuesto, una encuesta más rápida (2), y se puede usar dondequiera que se use este último ya que comparte la misma semántica ". Por lo tanto, como dice duskwuff, no hará nada útil. – mkj
Que es tan tonto e incorrecto El kernel puede colgarse por muchas razones, desde la activación del disco (si está dormida) hasta el retraso de la red desde un dispositivo compartido/unidad montado en la red. Cualquier tipo de interacción del dispositivo podría causar un cuelgue de IO. select/epoll/poll/kqueue se debe hacer funcionar con cualquier descriptor de archivo, así como cualquier descripción de archivo debe permitir el bloqueo. – Rahly
@Rahly Eso no es posible. El núcleo no sabe de antemano si se bloqueará una escritura en un archivo; a diferencia de los sockets o pipes, los búferes para las escrituras del sistema de archivos no están dedicados a un solo FD, por lo que no hay forma de garantizar que estarán disponibles para un proceso específico . – duskwuff