private_loop = private_display->private_loop;
- if (tdm_debug_thread)
+ if (tdm_debug_module & TDM_DEBUG_THREAD)
TDM_INFO("backend fd(%d) event happens", private_loop->backend_fd);
func_display = &private_display->func_display;
/* after tdm_thread_deinit, we don't worry about thread things because it's finalized */
tdm_thread_deinit(private_display->private_loop);
-
-
- _pthread_mutex_unlock(&private_display->lock);
tdm_server_deinit(private_display->private_loop);
if (private_display->private_loop->backend_source)
free(private_display->private_loop);
private_display->private_loop = NULL;
-
- _pthread_mutex_lock(&private_display->lock);
}
INTERN void
TDM_RETURN_VAL_IF_FAIL(private_loop->wl_loop != NULL, TDM_ERROR_OPERATION_FAILED);
- if (tdm_debug_thread)
+ if (tdm_debug_module & TDM_DEBUG_THREAD)
TDM_INFO("dispatch");
if (tdm_thread_is_running() &&
private_display = timer_source->private_display;
+ /* TDM event_loop function is actually for TDM backend module. When we call the
+ * backend's functions, we have to lock the mutex. TDM backend shouldn't consider
+ * mutex things.
+ */
_pthread_mutex_lock(&private_display->lock);
timer_source->func(timer_source->user_data);
_pthread_mutex_unlock(&private_display->lock);