|
@@ -686,13 +686,15 @@ static void flush_queued_work(CPUArchState *env)
|
|
|
|
|
|
static void qemu_wait_io_event_common(CPUArchState *env)
|
|
|
{
|
|
|
+ CPUState *cpu = ENV_GET_CPU(env);
|
|
|
+
|
|
|
if (env->stop) {
|
|
|
env->stop = 0;
|
|
|
env->stopped = 1;
|
|
|
qemu_cond_signal(&qemu_pause_cond);
|
|
|
}
|
|
|
flush_queued_work(env);
|
|
|
- env->thread_kicked = false;
|
|
|
+ cpu->thread_kicked = false;
|
|
|
}
|
|
|
|
|
|
static void qemu_tcg_wait_io_event(void)
|
|
@@ -866,11 +868,12 @@ static void qemu_cpu_kick_thread(CPUArchState *env)
|
|
|
void qemu_cpu_kick(void *_env)
|
|
|
{
|
|
|
CPUArchState *env = _env;
|
|
|
+ CPUState *cpu = ENV_GET_CPU(env);
|
|
|
|
|
|
qemu_cond_broadcast(env->halt_cond);
|
|
|
- if (!tcg_enabled() && !env->thread_kicked) {
|
|
|
+ if (!tcg_enabled() && !cpu->thread_kicked) {
|
|
|
qemu_cpu_kick_thread(env);
|
|
|
- env->thread_kicked = true;
|
|
|
+ cpu->thread_kicked = true;
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -878,10 +881,11 @@ void qemu_cpu_kick_self(void)
|
|
|
{
|
|
|
#ifndef _WIN32
|
|
|
assert(cpu_single_env);
|
|
|
+ CPUState *cpu_single_cpu = ENV_GET_CPU(cpu_single_env);
|
|
|
|
|
|
- if (!cpu_single_env->thread_kicked) {
|
|
|
+ if (!cpu_single_cpu->thread_kicked) {
|
|
|
qemu_cpu_kick_thread(cpu_single_env);
|
|
|
- cpu_single_env->thread_kicked = true;
|
|
|
+ cpu_single_cpu->thread_kicked = true;
|
|
|
}
|
|
|
#else
|
|
|
abort();
|