_tdm_output_call_thread_cb_status(tdm_private_output *private_output, tdm_output_conn_status status)
{
tdm_thread_cb_output_status output_status;
+ pid_t caller_tid = syscall(SYS_gettid);
tdm_error ret;
memset(&output_status, 0, sizeof output_status);
output_status.base.length = sizeof output_status;
output_status.base.object_stamp = private_output->stamp;
output_status.base.data = NULL;
- output_status.base.sync = 1;
+ if (tdm_thread_in_display_thread(caller_tid))
+ output_status.base.sync = 0;
+ else
+ output_status.base.sync = 1;
output_status.status = status;
ret = tdm_thread_cb_call(private_output, &output_status.base, 1);