aboutsummaryrefslogtreecommitdiffstats
path: root/src/bin/e_signals.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/bin/e_signals.c')
-rw-r--r--src/bin/e_signals.c19
1 files changed, 13 insertions, 6 deletions
diff --git a/src/bin/e_signals.c b/src/bin/e_signals.c
index b095b5207..2927fee45 100644
--- a/src/bin/e_signals.c
+++ b/src/bin/e_signals.c
@@ -71,12 +71,19 @@ e_sigseg_act(int x __UNUSED__, siginfo_t *info __UNUSED__, void *data __UNUSED__
EAPI void
e_sigill_act(int x __UNUSED__, siginfo_t *info __UNUSED__, void *data __UNUSED__)
{
- _e_x_composite_shutdown();
- ecore_x_pointer_ungrab();
- ecore_x_keyboard_ungrab();
- ecore_x_ungrab();
- ecore_x_sync();
- e_alert_show();
+ // In case of a sigill in Enlightenment, Enlightenment start will catch the sigill and continue,
+ // because evas cpu detection use that behaviour. But if we get a SIGILL after that, we endup in
+ // this sig handler. So E start remember the SIGILL, and we will commit succide with a USR1, followed
+ // by a SEGV.
+ kill(getpid(), SIGUSR1);
+ kill(getpid(), SIGSEGV);
+ pause();
+ /* _e_x_composite_shutdown(); */
+ /* ecore_x_pointer_ungrab(); */
+ /* ecore_x_keyboard_ungrab(); */
+ /* ecore_x_ungrab(); */
+ /* ecore_x_sync(); */
+ /* e_alert_show(); */
}
EAPI void