diff options
author | Mike Blumenkrantz <zmike@osg.samsung.com> | 2018-02-07 13:36:12 -0500 |
---|---|---|
committer | Mike Blumenkrantz <zmike@osg.samsung.com> | 2018-02-07 13:55:20 -0500 |
commit | abc802bd67ed4d6e91a8b3e9bea7980426d365e2 (patch) | |
tree | c91bd4ea5626740706009926e82a792b55722b70 | |
parent | 9c18cbc84b36b72ee227b64cf738c4548119b987 (diff) | |
download | enlightenment-devs/discomfitor/quicklaunch.tar.gz |
only add non-SIGILL signal handlers for non-quicklaunch buildsfeature/quicklaunchdevs/discomfitor/quicklaunch
quicklaunch does not require signal handling and any pause() call will
impede obtaining crashdumps
-rw-r--r-- | src/bin/e_main.c | 50 | ||||
-rw-r--r-- | src/bin/e_signals.c | 6 |
2 files changed, 27 insertions, 29 deletions
diff --git a/src/bin/e_main.c b/src/bin/e_main.c index f055f24b6b..65e74cb55a 100644 --- a/src/bin/e_main.c +++ b/src/bin/e_main.c @@ -242,33 +242,33 @@ elm_main(int argc, char **argv) if (!getenv("NOTIFY_SOCKET")) { TS("Signal Trap"); +#ifndef HAVE_WAYLAND action.sa_sigaction = e_sigseg_act; - action.sa_flags = SA_NODEFER | SA_RESETHAND | SA_SIGINFO; - sigemptyset(&action.sa_mask); - sigaction(SIGSEGV, &action, NULL); - - action.sa_sigaction = e_sigill_act; - action.sa_flags = SA_NODEFER | SA_RESETHAND | SA_SIGINFO; - sigemptyset(&action.sa_mask); - sigaction(SIGILL, &action, NULL); - - action.sa_sigaction = e_sigfpe_act; - action.sa_flags = SA_NODEFER | SA_RESETHAND | SA_SIGINFO; - sigemptyset(&action.sa_mask); - sigaction(SIGFPE, &action, NULL); - -#ifndef HAVE_WAYLAND_ONLY - action.sa_sigaction = e_sigbus_act; - action.sa_flags = SA_NODEFER | SA_RESETHAND | SA_SIGINFO; - sigemptyset(&action.sa_mask); - sigaction(SIGBUS, &action, NULL); + action.sa_flags = SA_NODEFER | SA_RESETHAND | SA_SIGINFO; + sigemptyset(&action.sa_mask); + sigaction(SIGSEGV, &action, NULL); #endif - - action.sa_sigaction = e_sigabrt_act; - action.sa_flags = SA_NODEFER | SA_RESETHAND | SA_SIGINFO; - sigemptyset(&action.sa_mask); - sigaction(SIGABRT, &action, NULL); - TS("Signal Trap Done"); + action.sa_sigaction = e_sigill_act; + action.sa_flags = SA_NODEFER | SA_RESETHAND | SA_SIGINFO; + sigemptyset(&action.sa_mask); + sigaction(SIGILL, &action, NULL); +#ifndef HAVE_WAYLAND + action.sa_sigaction = e_sigfpe_act; + action.sa_flags = SA_NODEFER | SA_RESETHAND | SA_SIGINFO; + sigemptyset(&action.sa_mask); + sigaction(SIGFPE, &action, NULL); + + action.sa_sigaction = e_sigbus_act; + action.sa_flags = SA_NODEFER | SA_RESETHAND | SA_SIGINFO; + sigemptyset(&action.sa_mask); + sigaction(SIGBUS, &action, NULL); + + action.sa_sigaction = e_sigabrt_act; + action.sa_flags = SA_NODEFER | SA_RESETHAND | SA_SIGINFO; + sigemptyset(&action.sa_mask); + sigaction(SIGABRT, &action, NULL); +#endif + TS("Signal Trap Done"); } t = ecore_time_unix_get(); diff --git a/src/bin/e_signals.c b/src/bin/e_signals.c index 4d6f9e5dda..5b66433be3 100644 --- a/src/bin/e_signals.c +++ b/src/bin/e_signals.c @@ -68,10 +68,6 @@ _e_write_safe_int(int fd, const char *buf, size_t size) static void _e_crash(void) { -#ifdef HAVE_WAYLAND - if (e_comp->comp_type == E_PIXMAP_TYPE_WL) - return; -#endif #ifndef HAVE_WAYLAND_ONLY _e_x_composite_shutdown(); ecore_x_pointer_ungrab(); @@ -100,7 +96,9 @@ e_sigill_act(int x EINA_UNUSED, siginfo_t *info EINA_UNUSED, void *data EINA_UNU // by a SEGV. kill(getpid(), SIGUSR1); kill(getpid(), SIGSEGV); +#ifndef HAVE_WAYLAND pause(); +#endif /* _e_x_composite_shutdown(); */ /* ecore_x_pointer_ungrab(); */ /* ecore_x_keyboard_ungrab(); */ |