}
/* the list of dequeued_buffers just does deletion */
+ TPL_OBJECT_LOCK(&wayland_egl_surface->base);
if (wayland_egl_surface->dequeued_buffers) {
- TPL_OBJECT_LOCK(&wayland_egl_surface->base);
__tpl_list_free(wayland_egl_surface->dequeued_buffers, NULL);
wayland_egl_surface->dequeued_buffers = NULL;
- TPL_OBJECT_UNLOCK(&wayland_egl_surface->base);
}
+ TPL_OBJECT_UNLOCK(&wayland_egl_surface->base);
__tpl_object_fini(&wayland_egl_surface->base);
free(wayland_egl_surface);
close(sync_fence);
}
+ TPL_OBJECT_LOCK(&wayland_egl_surface->base);
if (wayland_egl_surface->dequeued_buffers) {
- TPL_OBJECT_LOCK(&wayland_egl_surface->base);
/* Stop tracking of this render_done tbm_surface. */
__tpl_list_remove_data(wayland_egl_surface->dequeued_buffers,
(void *)tbm_surface, TPL_FIRST, NULL);
- TPL_OBJECT_UNLOCK(&wayland_egl_surface->base);
}
+ TPL_OBJECT_UNLOCK(&wayland_egl_surface->base);
tsq_err = tbm_surface_queue_enqueue(wayland_egl_surface->tbm_queue,
tbm_surface);
return TPL_ERROR_INVALID_PARAMETER;
}
+ TPL_OBJECT_LOCK(&wayland_egl_surface->base);
if (wayland_egl_surface->dequeued_buffers) {
- TPL_OBJECT_LOCK(&wayland_egl_surface->base);
/* Stop tracking of this render_done tbm_surface. */
__tpl_list_remove_data(wayland_egl_surface->dequeued_buffers,
(void *)tbm_surface, TPL_FIRST, NULL);
- TPL_OBJECT_UNLOCK(&wayland_egl_surface->base);
}
+ TPL_OBJECT_UNLOCK(&wayland_egl_surface->base);
if (!tbm_surface_internal_is_valid(tbm_surface)) {
TPL_WARN("Invalid buffer. tbm_surface(%p)", tbm_surface);
wayland_egl_surface->reset = TPL_FALSE;
wayland_egl_surface->is_activated = is_activated;
+ TPL_OBJECT_LOCK(&wayland_egl_surface->base);
if (wayland_egl_surface->dequeued_buffers) {
- TPL_OBJECT_LOCK(&wayland_egl_surface->base);
/* Start tracking of this tbm_surface until enqueue */
__tpl_list_push_back(wayland_egl_surface->dequeued_buffers,
(void *)tbm_surface);
- TPL_OBJECT_UNLOCK(&wayland_egl_surface->base);
}
+ TPL_OBJECT_UNLOCK(&wayland_egl_surface->base);
TPL_LOG_B("WL_EGL",
"[DEQ][R] tpl_wayland_surface_t(%p) wl_buffer(%p) tbm_surface(%p) bo(%d)",
wayland_egl_buffer->window_transform,
wayland_egl_buffer->w_rotated ? "[TRUE]" : "[FALSE]");
+ TPL_OBJECT_LOCK(&wayland_egl_surface->base);
if (wayland_egl_surface->dequeued_buffers) {
- TPL_OBJECT_LOCK(&wayland_egl_surface->base);
__tpl_list_push_back(wayland_egl_surface->dequeued_buffers,
(void *)tbm_surface);
- TPL_OBJECT_UNLOCK(&wayland_egl_surface->base);
}
+ TPL_OBJECT_UNLOCK(&wayland_egl_surface->base);
if (lock_res == 0) pthread_mutex_unlock(&wayland_egl_display->wl_event_mutex);
return tbm_surface;