return TPL_ERROR_NONE;
free_display:
- if (wl_egl_display->thread)
+ if (wl_egl_display->thread) {
+ tpl_gsource_destroy(wl_egl_display->tdm_source);
tpl_gthread_destroy(wl_egl_display->thread, _thread_fini);
+ }
wl_egl_display->thread = NULL;
free(wl_egl_display);
wl_egl_display->gsource = NULL;
}
+ if (wl_egl_display->tdm_source && wl_egl_display->tdm_initialized) {
+ tpl_gsource_destroy(wl_egl_display->tdm_source);
+ wl_egl_display->tdm_source = NULL;
+ }
+
if (wl_egl_display->thread) {
tpl_gthread_destroy(wl_egl_display->thread, NULL);
wl_egl_display->wl_egl_thread = NULL;