SIGTERM and other signal handling

This commit is contained in:
EntireTwix 2021-11-22 17:04:45 -08:00
parent 1d76bc54bd
commit 8c911675c7

View file

@ -79,11 +79,9 @@ int main(int argc, char **argv)
//Sig handling //Sig handling
struct sigaction sigIntHandler; struct sigaction sigIntHandler;
sigIntHandler.sa_handler = SaveSig; sigIntHandler.sa_handler = SaveSig;
sigemptyset(&sigIntHandler.sa_mask); sigemptyset(&sigIntHandler.sa_mask);
sigIntHandler.sa_flags = 0; sigIntHandler.sa_flags = 0;
sigaction(SIGINT, &sigIntHandler, NULL); sigaction(SIGINT, &sigIntHandler, NULL);
//Admin account //Admin account
@ -93,14 +91,15 @@ int main(int argc, char **argv)
const unsigned long saving_freq = std::stoul(std::string(argv[2])); const unsigned long saving_freq = std::stoul(std::string(argv[2]));
if (saving_freq) //if saving frequency is 0 then auto saving is turned off if (saving_freq) //if saving frequency is 0 then auto saving is turned off
{ {
std::thread([saving_freq]() { std::thread([saving_freq]()
while (1) {
{ while (1)
std::this_thread::sleep_for(std::chrono::minutes(saving_freq)); {
std::cout << "Saving " << std::time(0) << "...\n" std::this_thread::sleep_for(std::chrono::minutes(saving_freq));
<< Bank::Save(); std::cout << "Saving " << std::time(0) << "...\n"
} << Bank::Save();
}) }
})
.detach(); .detach();
} }
} //destroying setup variables } //destroying setup variables
@ -112,5 +111,7 @@ int main(int argc, char **argv)
#endif #endif
.run(); .run();
SaveSig(0);
return 0; return 0;
} }