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();

-- 


Reply via email to