summaryrefslogtreecommitdiff
path: root/command/markad-standalone.cpp
diff options
context:
space:
mode:
authorJochen Dolze <vdr@dolze.de>2010-04-04 22:26:03 +0200
committerJochen Dolze <vdr@dolze.de>2010-04-04 22:26:03 +0200
commita1f19e122cca43e5c07079e99e3544301cf3a1c8 (patch)
tree5ec3e8da68105e9c0cee959b7c0529f3bede7287 /command/markad-standalone.cpp
parent2aed1692fe4267ba15f0a4748979248e223d14fd (diff)
downloadvdr-plugin-markad-a1f19e122cca43e5c07079e99e3544301cf3a1c8.tar.gz
vdr-plugin-markad-a1f19e122cca43e5c07079e99e3544301cf3a1c8.tar.bz2
Added handler for SIGTSTP/SIGCONT
Diffstat (limited to 'command/markad-standalone.cpp')
-rw-r--r--command/markad-standalone.cpp18
1 files changed, 17 insertions, 1 deletions
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;