lexx-polarnet-pl / AquaPi

Raspberry Pi based aquarium computer
4 stars 1 forks source link

termination_handler nie dziala? #10

Closed SirYaro closed 10 years ago

SirYaro commented 10 years ago

Z tego co rozumiem w aquapi.c ten kawałek kodu nie bedzie robił nic bo pierwszy parametr nie pasuje do zadnego warunku. Jako ze obsługuje to grzałke to chyba trzeba poprawic. ALbo skasowac jesli przeniosłeś gdzies indziej.

void termination_handler(int signum) { // przy wychodzeniu wyłącz grzałkę ChangePortState(heater_port,0); if( signum ) { syslog(LOG_ERR, "Daemon exited abnormally."); Log("Praca daemona została przerwana",E_CRIT); } else { syslog(LOG_INFO, "Daemon exited."); Log("Daemon zakończył pracę",E_WARN); } exit(signum); }

SirYaro commented 10 years ago

takich wpisów jest sporo: ChangePortState(heater_port,grzanie); ChangePortState(cooling_port,chlodzenie);

lexx-polarnet-pl commented 10 years ago

termination_handler ma bardzo istotną funkcję. Wywoływany jest za każdym razem (albo powinien być) gdy daemon dostaje sygnał kill. Właściwie to nie wykonuje się tylko przy segfault. Taki zapis jak jest obecnie gwarantuje że w przypadku zakończenia pracy daemona, grzałka zostanie wyłączona.