Tengo un programa de varios hilos de Linux que usa epoll (7). La página man de epoll (7) dice que cuando se cierra uno de sus fds, este fd se eliminará automáticamente del conjunto epoll. Mi pregunta es qué pasa si un archivo fd del conjunto epoll se cierra en un hilo mientras el conjunto epoll se está sondeando en otro hilo al mismo tiempo sin sincronización. ¿Se dañará el programa o el kernel sincronizará este acceso automáticamente?Un problema de epoll multiproceso en Linux
Gracias
Feng
+1 FWIW en mi cuadro de prueba de linux 2.6, cierre() el fd de lectura de un conducto mientras está siendo epoll_wait() ed parece eliminar silenciosamente el fd del conjunto de sondeo. Por lo tanto, en el peor de los casos, si epoll_wait() es indefinido y close() d fd fue el único fd o el único que garantiza que se activará el proceso, es posible que se cuelgue para siempre. – pilcrow