X-Git-Url: https://git.teslayout.com/public/public/public/?a=blobdiff_plain;f=source%2Fapp%2FApplication.cpp;h=89ac34aad9b6cd4d45bd3130411c7e7215a854c5;hb=3e258840b15577cb8bda3cdedd0b9b88e16404b3;hp=acde252cb59a7871f3954a6f4db0cbcb50fc2eb8;hpb=4e12ac57e93c052f716a6305ad8fc099c45899d1;p=anna.git diff --git a/source/app/Application.cpp b/source/app/Application.cpp index acde252..89ac34a 100644 --- a/source/app/Application.cpp +++ b/source/app/Application.cpp @@ -1,4 +1,4 @@ -// ANNA - Anna is Not 'N' Anymore +// ANNA - Anna is Not Nothingness Anymore // // (c) Copyright 2005-2014 Eduardo Ramos Testillano & Francisco Ruiz Rayo // @@ -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)