Casuse: The crash was happened when application had called vc_deinitialize()
function because g_prepare_thread had been alived.
Change-Id: I7e171f01bff1152097918b70d1564b25923e20b7
Solution: Wait for terminating g_prepare thread after cancelling.
/* no break. need to next step*/
case VC_STATE_INITIALIZED:
pthread_mutex_lock(&g_prepare_thread_mutex);
- if (NULL != g_prepare_thread) {
+ if (NULL != g_prepare_thread && EINA_FALSE == ecore_thread_check(g_prepare_thread)) {
+ SLOG(LOG_INFO, TAG_VCC, "[INFO] Cancel prepare thread");
ecore_thread_cancel(g_prepare_thread);
+
+ ecore_thread_wait(g_prepare_thread, 1.0); // wait g_prepare_thread is terminated.
+ g_prepare_thread = NULL;
}
pthread_mutex_unlock(&g_prepare_thread_mutex);