On Tue, Oct 11, 2011 at 02:51:25AM +0200, Thomas Cataldo wrote: > While testing some java code that executes cyrus init script, I came into a > problem : the Java VM blocks SIGQUIT, event when using -Xrs parameter.
Why Java? > As SIGQUIT is safe shutdown, I need the signal delivered correctly. I came > up with the attached patch that resets the signal mask for cyrmaster before > setting the signal handlers. > > diff --git a/master/master.c b/master/master.c > index 823be06..f2ca72e 100644 > --- a/master/master.c > +++ b/master/master.c > @@ -1064,7 +1064,11 @@ void sigalrm_handler(int sig __attribute__((unused))) > void sighandler_setup(void) > { > struct sigaction action; > - > + sigset_t all_signals; > + > + sigfillset(&all_signals); > + sigprocmask(SIG_UNBLOCK, &all_signals, NULL); > + > sigemptyset(&action.sa_mask); > action.sa_flags = 0; Greg - you know signal handling better than me. What do you think? Bron.