discomfitor pushed a commit to branch enlightenment-0.18.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=1bbcf1573a6024ae9882c2bff73afb6ea1ff2716

commit 1bbcf1573a6024ae9882c2bff73afb6ea1ff2716
Author: Mike Blumenkrantz <[email protected]>
Date:   Mon Feb 17 12:02:27 2014 -0500

    bugfix: unref client when removing from exec if exec is deleted
    
    fixes a race condition where client would never be freed when closing lots 
of windows simultaneously
---
 src/bin/e_border.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/bin/e_border.c b/src/bin/e_border.c
index 94f62c6..f8c0f87 100644
--- a/src/bin/e_border.c
+++ b/src/bin/e_border.c
@@ -4913,7 +4913,11 @@ _e_border_del(E_Border *bd)
         if (bd->exe_inst->phony && (eina_list_count(bd->exe_inst->borders) == 
1))
           e_exec_phony_del(bd->exe_inst);
         else
-          bd->exe_inst->borders = eina_list_remove(bd->exe_inst->borders, bd);
+          {
+             bd->exe_inst->borders = eina_list_remove(bd->exe_inst->borders, 
bd);
+             if (bd->exe_inst->deleted)
+               e_object_unref(E_OBJECT(bd));
+          }
         bd->exe_inst = NULL;
      }
 

-- 


Reply via email to