From 3b9a5a15bcc3a14543e43608f49bded1b034217d Mon Sep 17 00:00:00 2001 From: Thierry Vignaud Date: Thu, 6 Apr 2006 17:22:05 +0000 Subject: Not all platforms automatically reinstall their (native) signal handlers after a signal delivery (aka the handler works only the first time the signal is sent). Let's use "POSIX" signal handlers since their behaviour is well-defined. --- mdkapplet | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/mdkapplet b/mdkapplet index f0661dbd..d245f900 100755 --- a/mdkapplet +++ b/mdkapplet @@ -165,7 +165,13 @@ $icon->show_all; $SIG{USR1} = 'IGNORE'; $SIG{USR2} = 'IGNORE'; $SIG{CHLD} = \&harvester; -$SIG{HUP} = \&restart_applet; + +# POSIX unmasks the sigprocmask properly +my $sigset = POSIX::SigSet->new; +my $action = POSIX::SigAction->new('restart_applet', + $sigset, + &POSIX::SA_NODEFER); +POSIX::sigaction(&POSIX::SIGHUP, $action); Glib::Timeout->add(200, sub { harvester('CHLD', 1); 1 }); -- cgit v1.2.1