From a1f19e122cca43e5c07079e99e3544301cf3a1c8 Mon Sep 17 00:00:00 2001 From: Jochen Dolze Date: Sun, 4 Apr 2010 22:26:03 +0200 Subject: Added handler for SIGTSTP/SIGCONT --- command/markad-standalone.cpp | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'command/markad-standalone.cpp') diff --git a/command/markad-standalone.cpp b/command/markad-standalone.cpp index ebca1eb..3eb2e05 100644 --- a/command/markad-standalone.cpp +++ b/command/markad-standalone.cpp @@ -1315,10 +1315,23 @@ int usage() return -1; } -void signal_handler(int sig) +static void signal_handler(int sig) { switch (sig) { + case SIGTSTP: + isyslog("paused by signal"); + sigset_t mask; + sigemptyset(&mask); + sigaddset(&mask, SIGTSTP); + sigprocmask(SIG_UNBLOCK, &mask, NULL); + signal(SIGTSTP,SIG_DFL); + kill(getpid(),SIGTSTP); + signal(SIGTSTP,signal_handler); + break; + case SIGCONT: + isyslog("continued by signal"); + break; case SIGABRT: esyslog("aborted by signal"); if (cmasta) cmasta->SetAbort(); @@ -1802,6 +1815,9 @@ int main(int argc, char *argv[]) signal(SIGSEGV, signal_handler); signal(SIGABRT, signal_handler); signal(SIGUSR1, signal_handler); + signal(SIGTSTP, signal_handler); + signal(SIGCONT, signal_handler); + cmasta->Process(recDir); delete cmasta; -- cgit v1.2.3