From f81c29f2a00f7cbc630576ee8e4b5891719526b3 Mon Sep 17 00:00:00 2001 From: Changyeon Lee Date: Mon, 14 Nov 2016 11:38:43 +0900 Subject: [PATCH] surface_queue: unlock mutex lock of queue when call alloc cb Change-Id: I4f4dd4e9eecd7898cb6f602144a017bcb68bdfb4 --- src/tbm_surface_queue.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/tbm_surface_queue.c b/src/tbm_surface_queue.c index f0c907f..ea5b09e 100644 --- a/src/tbm_surface_queue.c +++ b/src/tbm_surface_queue.c @@ -1441,9 +1441,11 @@ __tbm_queue_default_need_attach(tbm_surface_queue_h surface_queue) return; if (surface_queue->alloc_cb) { + pthread_mutex_unlock(&surface_queue->lock); _tbm_surf_queue_mutex_unlock(); surface = surface_queue->alloc_cb(surface_queue, surface_queue->alloc_cb_data); _tbm_surf_queue_mutex_lock(); + pthread_mutex_lock(&surface_queue->lock); if (!surface) return; @@ -1546,9 +1548,11 @@ __tbm_queue_sequence_need_attach(tbm_surface_queue_h surface_queue) return; if (surface_queue->alloc_cb) { + pthread_mutex_unlock(&surface_queue->lock); _tbm_surf_queue_mutex_unlock(); surface = surface_queue->alloc_cb(surface_queue, surface_queue->alloc_cb_data); _tbm_surf_queue_mutex_lock(); + pthread_mutex_lock(&surface_queue->lock); if (!surface) return; -- 2.7.4