+ if (wl_egl_surface->reset == TPL_TRUE && wl_egl_surface->last_deq_buffer) {
+ tpl_wl_egl_buffer_t *last_deq_buffer = wl_egl_surface->last_deq_buffer;
+
+ tpl_gmutex_lock(&last_deq_buffer->mutex);
+ if (last_deq_buffer->status > RELEASED &&
+ last_deq_buffer->status < COMMITTED) {
+ tpl_result_t wait_result;
+ wait_result = tpl_cond_timed_wait(&last_deq_buffer->cond,
+ &last_deq_buffer->mutex,
+ 200); /* 200ms */
+
+ if (wait_result == TPL_ERROR_TIME_OUT)
+ TPL_WARN("timeout occured waiting signaled. wl_egl_buffer(%p)",
+ last_deq_buffer);
+ }
+ tpl_gmutex_unlock(&last_deq_buffer->mutex);
+
+ wl_egl_surface->last_deq_buffer = NULL;
+ }