una tiempo tarda para ingredientes hacerse encender cuanto como coccion buena brasa barbacoa c sockets

tarda - ¿Qué hace poll() con un tiempo de espera de 0?



cuanto tarda el carbon en hacerse brasa (3)

Estoy mirando la página man poll() , y me dice el comportamiento de poll() cuando se pasan valores positivos y negativos para el parámetro timeout. No me dice qué sucede si el tiempo de espera es 0 . ¿Algunas ideas?

Al mirar la página man de epoll_wait() , me dice que con un valor de tiempo de espera de 0 , se devolverá de inmediato, incluso si no hay eventos disponibles. ¿Es seguro asumir que poll() se comportaría de la misma manera?


Como lo veo, esperar un tiempo de espera significa "tener" un tiempo de espera. De esta manera, esperaría que poll () realmente compruebe los descriptores de archivos, y luego espere si nadie está listo para un tiempo de espera de 0 milisegundos (sin esperar nada). Pero el caso es que solo indicará si un fd está disponible.

También verifiqué el código fuente de Linux y, que yo sepa, esta es la forma en que funciona: primero calcula el punto de espera "futuro", luego verifica los descriptores de los archivos, luego, si no hay ninguno disponible, espera el tiempo de espera especificado.

Saludos,


De las páginas man de Ubuntu:

El argumento de tiempo de espera especifica un límite superior en el tiempo que poll () bloqueará, en milisegundos. Especificar un valor negativo en tiempo de espera significa un tiempo de espera infinito.

Como no hay ningún caso especial para 0, supongo que poll () se bloqueará durante 0 milisegundos.


Regresará de inmediato:

Si el tiempo de espera es mayor que cero, especifica un intervalo máximo (en milisegundos) para esperar a que el descriptor de archivo esté listo. Si el tiempo de espera es cero, entonces poll() regresará sin bloqueo. Si el valor del tiempo de espera es -1 , la poll bloquea indefinidamente.

, a partir de Mac OS X 10.5 ;

Intervalo máximo de espera para que finalice la encuesta, en milisegundos. Si este valor es 0, poll() regresará inmediatamente. Si este valor es INFTIM (-1) , poll() se bloqueará indefinidamente hasta que se encuentre una condición.

, a partir de OpenBSD 3.8