summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean Guyomarc'h <jean@guyomarch.bzh>2017-03-23 22:58:08 +0100
committerStefan Schmidt <stefan@osg.samsung.com>2017-03-31 14:11:01 +0200
commitcd5e755951c0126f136b6e7cfded14056d8336fa (patch)
treef67bb07074c1cae78ad3de8c9d428c55433e62f4
parente2d1da14b8f9a8dfcce6e470a10e28635a2c641d (diff)
downloadefl-cd5e755951c0126f136b6e7cfded14056d8336fa.tar.gz
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
-rw-r--r--src/lib/elementary/elm_module.c14
-rw-r--r--src/lib/evas/common/evas_thread_render.c14
2 files changed, 28 insertions, 0 deletions
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 85955669ac..e66acd5270 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);