discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=884068ff9dc3e55afad2c338ec6987b75db16854
commit 884068ff9dc3e55afad2c338ec6987b75db16854 Author: Mike Blumenkrantz <zm...@osg.samsung.com> Date: Thu Jul 9 15:11:13 2015 -0400 when e crashes in wayland, just crash instead of possibly freezing --- src/bin/e_signals.c | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/src/bin/e_signals.c b/src/bin/e_signals.c index d423b0f..b994580 100644 --- a/src/bin/e_signals.c +++ b/src/bin/e_signals.c @@ -5,7 +5,7 @@ */ #include "e.h" -#ifdef HAVE_WAYLAND_ONLY +#ifdef HAVE_WAYLAND #include <Ecore_Drm.h> #endif @@ -66,22 +66,27 @@ _e_write_safe_int(int fd, const char *buf, size_t size) static void _e_crash(void) { -#ifdef HAVE_WAYLAND_ONLY - const Eina_List *list, *l, *ll; - Ecore_Drm_Device *dev; - - list = ecore_drm_devices_get(); - EINA_LIST_FOREACH_SAFE(list, l, ll, dev) +#ifdef HAVE_WAYLAND + if (e_comp->comp_type == E_PIXMAP_TYPE_WL) { - ecore_drm_inputs_destroy(dev); - ecore_drm_sprites_destroy(dev); - ecore_drm_device_close(dev); - ecore_drm_launcher_disconnect(dev); - ecore_drm_device_free(dev); - } + const Eina_List *list, *l, *ll; + Ecore_Drm_Device *dev; + + list = ecore_drm_devices_get(); + EINA_LIST_FOREACH_SAFE(list, l, ll, dev) + { + ecore_drm_inputs_destroy(dev); + ecore_drm_sprites_destroy(dev); + ecore_drm_device_close(dev); + ecore_drm_launcher_disconnect(dev); + ecore_drm_device_free(dev); + } - ecore_drm_shutdown(); -#else + ecore_drm_shutdown(); + return; + } +#endif +#ifndef HAVE_WAYLAND_ONLY _e_x_composite_shutdown(); ecore_x_pointer_ungrab(); ecore_x_keyboard_ungrab(); --