tbm_surface_queue: notify reset callback in free_flush
[platform/core/uifw/libtbm.git] / 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;
 }