aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Blumenkrantz <zmike@osg.samsung.com>2018-02-07 13:36:12 -0500
committerMike Blumenkrantz <zmike@osg.samsung.com>2018-02-07 13:55:20 -0500
commitabc802bd67ed4d6e91a8b3e9bea7980426d365e2 (patch)
treec91bd4ea5626740706009926e82a792b55722b70
parentadd quicklaunch-enabled version of e_start, enabled when wayland support is p... (diff)
downloadenlightenment-feature/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.c50
-rw-r--r--src/bin/e_signals.c6
2 files changed, 27 insertions, 29 deletions
diff --git a/src/bin/e_main.c b/src/bin/e_main.c
index f055f24b6..65e74cb55 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 4d6f9e5dd..5b66433be 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(); */