Next: Restart stav
Up: Stavy PETu
Previous: Normální stav
Do tohoto stavu se PET dostane, pokud je požadováno
ukončení programu. Tento stav nastane, pokud PET obdrží signál SIGINT
nebo SIGTERM . Za obdržení těchto signálů zodpovídá Signal Thread,
který po obdržení těchto signálů probudí a nastaví globální proměnnou pet.shutdown
na hodnotu TRUE. Toto nastavení způsobí, že Loop Thread nemá povoleno vytváření
nových pracovních threadů a že je požadováno jeho ukončení. Poté se zavolá funkce
pet_shutdown(), která provádí následující kroky:
- 1.
- volá se Thread Manager, který čeká po určitý (konfigurovatelný) timeout na skončení
všech pracovních threadů
- 2.
- existují-li pracovní thready i po vypršení timeoutu, jsou TM předčasně ukončeny
- postupně se volají ukončovací funkce všech modulů
- 3.
- ukončení síťové části PETu (zavření socketů, uvolnění dynamických struktur)
Po skončení pet_shutdown() se ukončí zbývající, ještě běžící, řídící thready
a následuje ukončení programu.
Stanislav Pavlicek
2000-06-12