stefan pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=cd5e755951c0126f136b6e7cfded14056d8336fa

commit cd5e755951c0126f136b6e7cfded14056d8336fa
Author: Jean Guyomarc'h <j...@guyomarch.bzh>
Date:   Thu Mar 23 22:58:08 2017 +0100

    efl: terrible kludge so avoid termination crash on osx
    
    Currently, elementary programs crash on termination on macOS (seems
    Sierra-specific). This is very nasty, looks like deep memory corruption...
    Without valgrind (or like) support on Sierra, it is difficult to
    pinpoint the origin of the problem.
    
    Due to the imminient release, and after discussion with @stefan, this
    kludge will allow the release to happen.
    
    This commit MUST be reverted just after the release, so we don't
    blindfold ourselves!
    
    Ref T5245
---
 src/lib/elementary/elm_module.c          | 14 ++++++++++++++
 src/lib/evas/common/evas_thread_render.c | 14 ++++++++++++++
 2 files changed, 28 insertions(+)

diff --git a/src/lib/elementary/elm_module.c b/src/lib/elementary/elm_module.c
index 03f70dc..a987c9e 100644
--- a/src/lib/elementary/elm_module.c
+++ b/src/lib/elementary/elm_module.c
@@ -190,8 +190,22 @@ _elm_module_unload(Elm_Module *m)
    if (m->module)
      {
         if (m->shutdown_func) m->shutdown_func(m);
+#if defined(__APPLE__) && defined(__MACH__)
+       /*
+        * FIXME
+        *
+        * MacOS currently undergo a fatal issue on shutdown: dlsym()
+        * crashes. I still have no clue why... Sue to the imminent release,
+        * let's NOT shutdown the module. Do nothing...
+        *
+        * THIS IS A TERRIBLE KLUDGE. IT MUST NOT STAY AFTER THE RELEASE OCCURS!
+        *
+        * FIXME
+        */
+#else
         eina_module_unload(m->module);
         eina_module_free(m->module);
+#endif
         m->module = NULL;
      }
    m->shutdown_func = NULL;
diff --git a/src/lib/evas/common/evas_thread_render.c 
b/src/lib/evas/common/evas_thread_render.c
index 8595566..e66acd5 100644
--- a/src/lib/evas/common/evas_thread_render.c
+++ b/src/lib/evas/common/evas_thread_render.c
@@ -220,7 +220,21 @@ evas_thread_shutdown(void)
           }
      }
 
+#if defined(__APPLE__) && defined(__MACH__)
+   /*
+    * FIXME
+    *
+    * MacOS currently undergo a fatal issue on shutdown: pthread_join()
+    * crashes. I still have no clue why... Sue to the imminent release,
+    * let's NOT join this thread: do nothing at all!
+    *
+    * THIS IS A TERRIBLE KLUDGE. IT MUST NOT STAY AFTER THE RELEASE OCCURS!
+    *
+    * FIXME
+    */
+#else
    eina_thread_join(evas_thread_worker);
+#endif
 timeout_shutdown:
    eina_lock_free(&evas_thread_queue_lock);
    eina_condition_free(&evas_thread_queue_condition);

-- 


Reply via email to