stefan pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=9368eedd353a88dd31ba50c71433f81a2978adb5
commit 9368eedd353a88dd31ba50c71433f81a2978adb5 Author: Jean Guyomarc'h <[email protected]> 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 03f70dc032..a987c9e23c 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 bbde81a657..2f3b291927 100644 --- a/src/lib/evas/common/evas_thread_render.c +++ b/src/lib/evas/common/evas_thread_render.c @@ -261,7 +261,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); --
