From: Changyeon Lee Date: Tue, 27 Sep 2016 05:22:40 +0000 (+0900) Subject: Fix deadlock problem X-Git-Tag: accepted/tizen/ivi/20160927.081044^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=66ec6ab5bdc909aff5ce73aaecd5c67923eac464;p=platform%2Fcore%2Fuifw%2Flibtbm.git Fix deadlock problem Change-Id: I64345d042d399586f85b8e29a4675b22467ea008 --- diff --git a/src/tbm_bufmgr.c b/src/tbm_bufmgr.c index 054b5d5..99721a8 100644 --- a/src/tbm_bufmgr.c +++ b/src/tbm_bufmgr.c @@ -1445,10 +1445,13 @@ tbm_bufmgr_debug_show(tbm_bufmgr bufmgr) char data[255] = {0,}; tbm_surface_debug_data *debug_old_data = NULL, *debug_tmp = NULL; - _tbm_bufmgr_mutex_lock(); + pthread_mutex_lock(&gLock); - TBM_BUFMGR_RETURN_IF_FAIL(TBM_BUFMGR_IS_VALID(bufmgr)); - TBM_BUFMGR_RETURN_IF_FAIL(bufmgr == gBufMgr); + if (!TBM_BUFMGR_IS_VALID(bufmgr) || (bufmgr != gBufMgr)) { + TBM_LOG_E("invalid bufmgr\n"); + pthread_mutex_unlock(&gLock); + return; + } TBM_DEBUG("\n"); _tbm_util_get_appname_from_pid(getpid(), app_name); @@ -1544,7 +1547,7 @@ tbm_bufmgr_debug_show(tbm_bufmgr bufmgr) TBM_DEBUG("===============================================================\n"); - _tbm_bufmgr_mutex_unlock(); + pthread_mutex_unlock(&gLock); } void diff --git a/src/tbm_surface_internal.c b/src/tbm_surface_internal.c index 4dafc86..874f167 100644 --- a/src/tbm_surface_internal.c +++ b/src/tbm_surface_internal.c @@ -1394,8 +1394,10 @@ _tbm_surface_internal_get_debug_data(tbm_surface_h surface, char *key) if (!LIST_IS_EMPTY(&surface->debug_data_list)) { LIST_FOR_EACH_ENTRY_SAFE(old_data, tmp, &surface->debug_data_list, item_link) { - if (!strcmp(old_data->key, key)) + if (!strcmp(old_data->key, key)) { + _tbm_surface_mutex_unlock(); return old_data->value; + } } }