From: Joonbum Ko Date: Mon, 27 Apr 2020 07:29:50 +0000 (+0900) Subject: Fixed a bug that could cause deadlock. X-Git-Tag: submit/tizen/20200507.060140~5 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=2aa72bf3285da6b14a918b8738fe7e42d65470c2;p=platform%2Fcore%2Fuifw%2Flibtpl-egl.git Fixed a bug that could cause deadlock. Change-Id: Idb231c020b08e60aa3e2368562551a7e06cfd61b Signed-off-by: Joonbum Ko --- diff --git a/src/tpl_wayland_egl_thread.c b/src/tpl_wayland_egl_thread.c index a5801ec..f815193 100755 --- a/src/tpl_wayland_egl_thread.c +++ b/src/tpl_wayland_egl_thread.c @@ -2294,7 +2294,6 @@ _twe_thread_wl_surface_acquire_and_commit(twe_wl_surf_source *surf_source) tbm_surface_internal_get_user_data(tbm_surface, KEY_BUFFER_INFO, (void **)&buf_info); - g_mutex_lock(&surf_source->surf_mutex); if (!disp_source->is_vulkan_dpy) { /* wayland_egl */ if (surf_source->vblank_done) { TPL_LOG_T(BACKEND, "[ACQ] tbm_surface(%p) bo(%d)", @@ -2363,7 +2362,6 @@ _twe_thread_wl_surface_acquire_and_commit(twe_wl_surf_source *surf_source) break; } } - g_mutex_unlock(&surf_source->surf_mutex); } } @@ -3289,13 +3287,13 @@ _twe_thread_fence_wait_source_dispatch(GSource *source, GSourceFunc cb, gpointer TRACE_ASYNC_END((int)wait_source, "FENCE WAIT fd(%d)", wait_source->fence_fd); + g_mutex_lock(&surf_source->surf_mutex); /* Since this source is going to be removed, acquire_and_commit must be * executed even in a situation other than G_IO_IN. * Nevertheless, there may be room for improvement. */ _twe_thread_wl_surface_acquire_and_commit(surf_source); tbm_surface_internal_unref(tbm_surface); - g_mutex_lock(&surf_source->surf_mutex); __tpl_list_remove_data(surf_source->fence_waiting_sources, (void *)wait_source, TPL_FIRST, NULL); g_mutex_unlock(&surf_source->surf_mutex);