all repos — openbox @ 1ff042579e2cbe367807ed6c8a15e71dfae2a526

openbox fork - make it a bit more like ryudo

use fprintf not g_message in the signal handler. no mallocing allowed.
Dana Jansens danakj@orodu.net
commit

1ff042579e2cbe367807ed6c8a15e71dfae2a526

parent

121afb76eb7f8b5a071bb45d262c6fc43ce82dff

1 files changed, 6 insertions(+), 5 deletions(-)

jump to
M openbox/openbox.copenbox/openbox.c

@@ -26,6 +26,7 @@ #ifdef HAVE_FCNTL_H

# include <fcntl.h> #endif #ifdef HAVE_SIGNAL_H +#define __USE_UNIX98 # include <signal.h> #endif #ifdef HAVE_STDLIB_H

@@ -108,10 +109,10 @@ /* set up signal handler */

sigemptyset(&sigset); action.sa_handler = dispatch_signal; action.sa_mask = sigset; - action.sa_flags = SA_NOCLDSTOP; + action.sa_flags = SA_NOCLDSTOP | SA_NODEFER; sigaction(SIGUSR1, &action, (struct sigaction *) NULL); sigaction(SIGPIPE, &action, (struct sigaction *) NULL); - sigaction(SIGSEGV, &action, (struct sigaction *) NULL); +/* sigaction(SIGSEGV, &action, (struct sigaction *) NULL);*/ sigaction(SIGFPE, &action, (struct sigaction *) NULL); sigaction(SIGTERM, &action, (struct sigaction *) NULL); sigaction(SIGINT, &action, (struct sigaction *) NULL);

@@ -442,7 +443,7 @@

s = e->data.s.signal; switch (s) { case SIGUSR1: - g_message("Caught SIGUSR1 signal. Restarting."); + fprintf(stderr, "Caught SIGUSR1 signal. Restarting."); ob_shutdown = ob_restart = TRUE; break;

@@ -450,13 +451,13 @@ case SIGHUP:

case SIGINT: case SIGTERM: case SIGPIPE: - g_message("Caught signal %d. Exiting.", s); + fprintf(stderr, "Caught signal %d. Exiting.", s); ob_shutdown = TRUE; break; case SIGFPE: case SIGSEGV: - g_message("Caught signal %d. Aborting and dumping core.", s); + fprintf(stderr, "Caught signal %d. Aborting and dumping core.", s); abort(); } }