> On 29/11/2013 19:59, Roberto De Ioris wrote: >> [...] >> La morte di un child e' segnalata da SIGCHLD (di default, occhio pero' >> che >> e' trappabile), ma non lavorerei con i segnali unix (per questo >> specifico >> problema) neanche sotto tortura. >> >> Dove non hai a disposizione kqueue (e WaitForMultipleObjects) vai di >> polling e waitpid con WHOHANG: >> > > Perchè, epoll + signalfd non va bene?
va bene, e' che non mi piace proprio dover fare affidamento su SIGCHLD. Purtroppo i segnali posix/unix sono una di quelle cose che ti fanno pensare: "fico c'e' su tutte le piattaforme, uso loro e passa la paura". Il problema e' che poi ogni OS li gestisce a modo suo (soprattutto gli unix proprietari) > > Inoltre, curiosità personale visto che non ho mai fatto test, quale è la > differenza tra sigtimedwait e kqueue + apposito filtro o epoll + signalfd? > > che kqueue non usa i segnali, quando un processo muore tutti i poller in ascolto vengono svegliati dal kernel. Praticamente non hai nessuno dei problemi dei segnali unix e (soprattutto) non ti costringe a modificare la logica del tuo programma (o a fare trucchi strani, tra cui includo il mio poller su waitpid suggerito nella mail di prima). Purtroppo su Linux kqueue non c'e' :) -- Roberto De Ioris http://unbit.it _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python