From 08a7c066824ab4bb7d9964fbfc0e91552b41b057 Mon Sep 17 00:00:00 2001 From: Changyeon Lee Date: Thu, 24 Sep 2020 15:16:55 +0900 Subject: [PATCH] tbm_surface_queue: notify reset callback in free_flush ddk should know that free buffer is destroyed Change-Id: Id9031a0cdcc167fb89ce0d9c0c53f1ef68478917 --- src/tbm_surface_queue.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/tbm_surface_queue.c b/src/tbm_surface_queue.c index 40b5c9d..ef63887 100644 --- a/src/tbm_surface_queue.c +++ b/src/tbm_surface_queue.c @@ -1925,6 +1925,7 @@ tbm_surface_queue_error_e tbm_surface_queue_free_flush(tbm_surface_queue_h surface_queue) { queue_node *node = NULL; + int is_guarantee_cycle = 0; _tbm_surf_queue_mutex_lock(); _tbm_set_last_result(TBM_ERROR_NONE); @@ -1952,9 +1953,15 @@ tbm_surface_queue_free_flush(tbm_surface_queue_h surface_queue) /* Reset queue */ _queue_init(&surface_queue->free_queue); + if (surface_queue->modes & TBM_SURFACE_QUEUE_MODE_GUARANTEE_CYCLE) + is_guarantee_cycle = 1; + pthread_mutex_unlock(&surface_queue->lock); _tbm_surf_queue_mutex_unlock(); + if (is_guarantee_cycle) + _notify_emit(surface_queue, &surface_queue->reset_noti); + return TBM_SURFACE_QUEUE_ERROR_NONE; } -- 2.7.4