X-Git-Url: https://git.teslayout.com/public/public/public/?a=blobdiff_plain;f=source%2Fapp%2FApplication.cpp;h=e838e88bc46036c2b047dc954a60d38265380d37;hb=c3457fb55c1b3be997a2677b5519db95c8865bbb;hp=acde252cb59a7871f3954a6f4db0cbcb50fc2eb8;hpb=52ef1b135cc2eb90d51db903acb5bf0d49013aa7;p=anna.git diff --git a/source/app/Application.cpp b/source/app/Application.cpp index acde252..e838e88 100644 --- a/source/app/Application.cpp +++ b/source/app/Application.cpp @@ -73,7 +73,8 @@ app::Application::Application(const char* shortName, const char* title, const ch a_version(version), a_title(title), a_enableGPL(false) { - sigset(SIGUSR1, handlerSignalUSR1); + sigset(SIGUSR1, handlerSignalUSR); + sigset(SIGUSR2, handlerSignalUSR); sigset(SIGTERM, handlerSignalTerminate); sigignore(SIGINT); app::sccs::activate(); @@ -390,30 +391,41 @@ throw() { return app; } +void app::Application::signalUSR(int signal) +throw(RuntimeException) { + if (signal == SIGUSR1) signalUSR1(); + else if (signal == SIGUSR2) signalUSR2(); +} + void app::Application::signalUSR1() throw(RuntimeException) { writeContext(anna::functions::asString("/var/tmp/anna.context.%05d", getPid())); } +void app::Application::signalUSR2() +throw(RuntimeException) { + Logger::notice("Captured signal SIGUSR2. Nothing implemented at the moment", ANNA_FILE_LOCATION); +} + void app::Application::sendSignalToChilds(const int signal) throw() { for(pid_iterator ii = pid_begin(), maxii = pid_end(); ii != maxii; ii ++) kill(pid(ii), signal); } -void app::Application::handlerSignalUSR1(int) +void app::Application::handlerSignalUSR(int signal) throw() { - sigignore(SIGUSR1); + sigignore(signal); try { Application& app = anna::app::functions::getApp(); - app.sendSignalToChilds(SIGUSR1); - app.signalUSR1(); + app.sendSignalToChilds(signal); + app.signalUSR(signal); } catch(Exception& ex) { ex.trace(); } - sigset(SIGUSR1, handlerSignalUSR1); + sigset(signal, handlerSignalUSR); } void app::Application::handlerSignalTerminate(int)