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
This commit is contained in:
Jean Guyomarc'h 2017-03-23 22:58:08 +01:00 committed by Stefan Schmidt
parent 256450d294
commit 9368eedd35
2 changed files with 28 additions and 0 deletions

View File

@ -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;

View File

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