( Kiskübi | 2019. 06. 18., k – 15:55 )

A könnyebb téma:

> Nem muszáj a SIGCHLD-ra várni, erre írtam fentebb, hogy akár periodikusan is lehet nézgeteni ezt a táblát, teljesen ignorálva a SIGCHLD signalokat. Akkor nincs signal-összeolvadás, nincsenek egymásba érő PID check ciklusok.

Egymásba érő PID check ciklusok tényleg nem lesznek. „Eseményösszeolvadás” - mondjuk így - mindenképp lehet, csak ha végignézzük a táblát, akkor már nem zavar. Igen, lehet periodikusan nézni, sőt, újabb ötlet:
- nincs aszinkron handler függvény (ahogy beszéltük)
- t időnként megnézzük, hogy a sigpending() mutat-e egyáltalán olyat, hogy SIGCHLD érkezett. Nem tudjuk, mennyi, de ez nem baj.
- ha épp nem, akkor végig se kell nézni. Ha igen, akkor kell.

Jut eszembe, a kill 0 helyett meg lehet nézni a processztáblát, hogy fölöslegesen ne zavarjuk a child-ok esetleges close()-ait, meg miegymást.

A nehezebb téma:

> ha egy frissen létrehozott child process visszakapott PID-je már szerepel a táblában, akkor egyértelmű, hogy az csak úgy lehet, ha a korábbi tulajdonos kiszállt és újra kiosztották a PID-jét.

No de honnan tudjuk, hogy a korábbi kiszállt-e egyáltalán?

> ha tényleg annyi processünk lesz, akkor IMHO előbb fogynak el a fizikai erőforrások a rendszer alól, mintsem, hogy érzékelhetővé váljon a PID lista kezelésének lassúsága.

Hogy érzékelhetővé válik a kezelés lassúsága, az nem baj, viszont egyre megbízhatatlanabb lesz. De az igaz, hogy addigra nagyobb bajaink is lesznek. :) Részemről kb. eljutottunk oda, hogy ami fontos, azt megoldottuk közösen - kösz; - a többi már nem túl gyakorlati, viszont elég nehéz kérdés, azt elengedem. :)