tbm_surface_queue: notify reset callback in free_flush 78/244778/4
authorChangyeon Lee <cyeon.lee@samsung.com>
Thu, 24 Sep 2020 06:16:55 +0000 (15:16 +0900)
committerChangyeon Lee <cyeon.lee@samsung.com>
Thu, 24 Sep 2020 07:20:49 +0000 (16:20 +0900)
ddk should know that free buffer is destroyed

Change-Id: Id9031a0cdcc167fb89ce0d9c0c53f1ef68478917

src/tbm_surface_queue.c

index 40b5c9d..ef63887 100644 (file)
@@ -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;
 }