@@ -794,7 +794,7 @@ static void *kvm_cpu_thread_fn(void *arg)
/* signal CPU creation */
env->created = 1;
- qemu_cond_signal(&qemu_cpu_cond);
+ qemu_cond_broadcast(&qemu_cpu_cond);
/* and wait for machine initialization */
while (!qemu_system_ready)
@@ -820,7 +820,7 @@ static void *tcg_cpu_thread_fn(void *arg)
qemu_mutex_lock(&qemu_global_mutex);
for (env = first_cpu; env != NULL; env = env->next_cpu)
env->created = 1;
- qemu_cond_signal(&qemu_cpu_cond);
+ qemu_cond_broadcast(&qemu_cpu_cond);
/* and wait for machine initialization */
while (!qemu_system_ready)
@@ -935,7 +935,7 @@ static void tcg_init_vcpu(void *_env)
qemu_cond_init(env->halt_cond);
qemu_thread_create(env->thread, tcg_cpu_thread_fn, env);
while (env->created == 0)
- qemu_cond_timedwait(&qemu_cpu_cond, &qemu_global_mutex, 100);
+ qemu_cond_wait(&qemu_cpu_cond, &qemu_global_mutex);
tcg_cpu_thread = env->thread;
tcg_halt_cond = env->halt_cond;
} else {
@@ -951,7 +951,7 @@ static void kvm_start_vcpu(CPUState *env)
qemu_cond_init(env->halt_cond);
qemu_thread_create(env->thread, kvm_cpu_thread_fn, env);
while (env->created == 0)
- qemu_cond_timedwait(&qemu_cpu_cond, &qemu_global_mutex, 100);
+ qemu_cond_wait(&qemu_cpu_cond, &qemu_global_mutex);
}
void qemu_init_vcpu(void *_env)
Whenever env->created becomes true, qemu_cpu_cond is signaled by {kvm,tcg}_cpu_thread_fn. I change qemu_cond_signal to qemu_cond_broadcast because right now there is only one listened but, if there were more, there would be no reason to wake up only one. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> --- cpus.c | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-)