next up previous contents index
Next: Restart stav Up: Stavy PETu Previous: Normální stav

Shutdown 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