Durante la depuración de nuestra aplicación en el entorno Linux, podemos observar que algunos eventos - POLLHUP|POLLIN
ocurren solo en Linux. Nuestra aplicación usa conectores Unix. Cuando hacemos:Implementación de encuesta en la implementación de linux vs poll en solaris
ret = poll(xpoll->pfd, xpoll->pfd_count, xpoll_timeout);
strace muestra:
poll([{fd=4, events=POLLIN|POLLPRI|POLLERR|POLLHUP}, {fd=6, events=POLLIN|POLLPRI|POLLERR|POLLHUP}, {fd=7, events=POLLIN|POLLPRI|POLLERR|POLLHUP}], 3, 16) = 1
([{fd=7, revents=POLLIN|POLLHUP}])
Esa situación no se da en Solaris (misma aplicación): Struss muestra:
2463/3: fd=569 ev=POLLIN|POLLPRI|POLLERR|POLLHUP rev=0
2463/3: fd=639 ev=POLLIN|POLLPRI|POLLERR|POLLHUP rev=0
2463/3: fd=631 ev=POLLIN|POLLPRI|POLLERR|POLLHUP rev=POLLIN
2463/3: fd=1160 ev=POLLIN|POLLPRI|POLLERR|POLLHUP rev=0
2463/3: fd=400 ev=POLLIN|POLLPRI|POLLERR|POLLHUP rev=0
¿Me podría explicar lo que se la diferencia entre encuesta en solaris y encuesta en liunx? Thx de antemano para todas las respuestas.
Linux devuelve POLLIN (datos para leer) incluso en caso de EOF. Linux no hay indicador POLLEOF. Eso es todo lo que hago ahora. – B4NZ41