tpl_gmutex_unlock(&wl_egl_display->wl_event_mutex);
wait_result = tpl_cond_timed_wait(&wl_egl_buffer->cond,
&wl_egl_buffer->mutex,
- 16); /* 16ms */
+ 50); /* 50ms */
tpl_gmutex_lock(&wl_egl_display->wl_event_mutex);
- status = wl_egl_buffer->status;
-
if (wait_result == TPL_ERROR_TIME_OUT)
TPL_WARN("timeout occured waiting signaled. wl_egl_buffer(%p)",
wl_egl_buffer);
}
}
+ tpl_gmutex_lock(&wl_egl_surface->surf_mutex);
+
+ status = wl_egl_buffer->status; /* update status */
+
/* ACQUIRED, WAITING_SIGNALED, WAITING_VBLANK, COMMITTED */
/* It has been acquired but has not yet been released, so this
* buffer must be released. */
wl_egl_buffer->tbm_surface, tsq_err);
}
+ tpl_gmutex_unlock(&wl_egl_surface->surf_mutex);
+
wl_egl_buffer->status = RELEASED;
tpl_gmutex_unlock(&wl_egl_buffer->mutex);
wl_egl_surface,
wl_egl_surface->wl_surface, wl_egl_surface->tbm_queue);
- tpl_gmutex_lock(&wl_egl_surface->surf_mutex);
_tpl_wl_egl_surface_buffer_clear(wl_egl_surface);
- tpl_gmutex_unlock(&wl_egl_surface->surf_mutex);
if (wl_egl_surface->surf_source)
tpl_gsource_destroy(wl_egl_surface->surf_source, TPL_TRUE);