*release_fence = wl_egl_buffer->release_fence_fd;
TPL_DEBUG("wl_egl_surface(%p) wl_egl_buffer(%p) release_fence_fd(%d)",
wl_egl_surface, wl_egl_buffer, *release_fence);
+
+ wl_egl_buffer->release_fence_fd = -1;
} else {
*release_fence = -1;
}
wl_egl_buffer->buffer_release = NULL;
}
+ if (wl_egl_buffer->release_fence_fd != -1) {
+ close(wl_egl_buffer->release_fence_fd);
+ wl_egl_buffer->release_fence_fd = -1;
+ }
+
if (wl_egl_buffer->waiting_source) {
tpl_gsource_destroy(wl_egl_buffer->waiting_source, TPL_FALSE);
wl_egl_buffer->waiting_source = NULL;