|
From: | Paolo Bonzini |
Subject: | Re: [Qemu-devel] [RFC PATCH 3/3] cpus: introduce async_run_safe_work_on_cpu. |
Date: | Fri, 10 Jul 2015 17:23:20 +0200 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.0.1 |
On 10/07/2015 17:19, address@hidden wrote: > +static void flush_queued_safe_work(CPUState *cpu) > +{ > + struct qemu_work_item *wi; > + CPUState *other_cpu; > + > + if (cpu->queued_safe_work_first == NULL) { > + return; > + } > + > + CPU_FOREACH(other_cpu) { > + if (other_cpu->tcg_executing != 0) { > + return; > + } > + } > + > + qemu_mutex_lock(&cpu->work_mutex); > + while ((wi = cpu->queued_safe_work_first)) { > + cpu->queued_safe_work_first = wi->next; > + wi->func(wi->data); Same here. Paolo > + wi->done = true; > + if (wi->free) { > + g_free(wi); > + } > + } > + cpu->queued_safe_work_last = NULL; > + qemu_mutex_unlock(&cpu->work_mutex); > + qemu_cond_broadcast(&qemu_work_cond); > +}
[Prev in Thread] | Current Thread | [Next in Thread] |