On 10/07/2015 17:19, fred.kon...@greensocs.com wrote: > + qemu_mutex_lock(&cpu->work_mutex); > while ((wi = cpu->queued_work_first)) { > cpu->queued_work_first = wi->next; > wi->func(wi->data);
Please unlock the mutex while calling the callback. Paolo > @@ -905,6 +912,8 @@ static void flush_queued_work(CPUState *cpu) > } > } > cpu->queued_work_last = NULL; > + qemu_mutex_unlock(&cpu->work_mutex); > + > qemu_cond_broadcast(&qemu_work_cond);