TBM_SURF_QUEUE_RETURN_VAL_IF_FAIL(_tbm_surface_queue_is_valid(surface_queue), 0);
+ pthread_mutex_lock(&surface_queue->lock);
+
TBM_TRACE_SURFACE_QUEUE("tbm_surface_queue(%p)", surface_queue);
width = surface_queue->width;
+ pthread_mutex_unlock(&surface_queue->lock);
+
_tbm_surf_queue_mutex_unlock();
return width;
TBM_SURF_QUEUE_RETURN_VAL_IF_FAIL(_tbm_surface_queue_is_valid(surface_queue), 0);
+ pthread_mutex_lock(&surface_queue->lock);
+
TBM_TRACE_SURFACE_QUEUE("tbm_surface_queue(%p)", surface_queue);
height = surface_queue->height;
+ pthread_mutex_unlock(&surface_queue->lock);
+
_tbm_surf_queue_mutex_unlock();
return height;
TBM_TRACE_SURFACE_QUEUE("tbm_surface_queue(%p)", surface_queue);
+ pthread_mutex_lock(&surface_queue->lock);
+
format = surface_queue->format;
+ pthread_mutex_unlock(&surface_queue->lock);
+
_tbm_surf_queue_mutex_unlock();
return format;
TBM_SURF_QUEUE_RETURN_VAL_IF_FAIL(_tbm_surface_queue_is_valid(surface_queue), 0);
+ pthread_mutex_lock(&surface_queue->lock);
+
TBM_TRACE_SURFACE_QUEUE("tbm_surface_queue(%p)", surface_queue);
queue_size = surface_queue->queue_size;
+ pthread_mutex_unlock(&surface_queue->lock);
+
_tbm_surf_queue_mutex_unlock();
return queue_size;
TBM_TRACE_SURFACE_QUEUE("tbm_surface_queue(%p)", surface_queue);
+ pthread_mutex_lock(&surface_queue->lock);
+
if (width == surface_queue->width && height == surface_queue->height &&
format == surface_queue->format) {
+ pthread_mutex_unlock(&surface_queue->lock);
_tbm_surf_queue_mutex_unlock();
return TBM_SURFACE_QUEUE_ERROR_NONE;
}
- pthread_mutex_lock(&surface_queue->lock);
-
surface_queue->width = width;
surface_queue->height = height;
surface_queue->format = format;
TBM_TRACE_SURFACE_QUEUE("tbm_surface_queue(%p)", surface_queue);
+ pthread_mutex_lock(&surface_queue->lock);
+
if (surface_queue->num_attached == 0) {
+ pthread_mutex_unlock(&surface_queue->lock);
_tbm_surf_queue_mutex_unlock();
return TBM_SURFACE_QUEUE_ERROR_NONE;
}
- pthread_mutex_lock(&surface_queue->lock);
-
if (surface_queue->modes & TBM_SURFACE_QUEUE_MODE_GUARANTEE_CYCLE) {
/* Destory surface and Push to free_queue */
LIST_FOR_EACH_ENTRY_SAFE(node, tmp, &surface_queue->free_queue.head, item_link)