assert(find_funcs[cb_base->type] != NULL);
+ if (keep_private_thread && keep_private_thread->thread_tid != caller_tid) {
+ /* A sync-type event from display-thread to tdm-thread can't be handled.
+ * If sync-type events happen in both threads at the same time,
+ * it would make a deadlock issue.
+ */
+ assert(cb_base->sync != 1);
+ }
+
if (tdm_debug_module & TDM_DEBUG_THREAD)
TDM_INFO("'%s' thread_cb (sync:%d, propagation:%d) ------",
tdm_cb_type_str(cb_base->type), cb_base->sync, propagation);
- /* handling only output-status as sync. below logic can't handle two sync-type events */
- if (cb_base->type == TDM_THREAD_CB_OUTPUT_STATUS)
- assert(cb_base->sync == 1);
- else
- assert(cb_base->sync == 0);
-
if (!object) {
object = find_funcs[cb_base->type](private_display, cb_base->object_stamp);
if (!object) {