Revision d9f75a4e vl.c

b/vl.c
1193 1193
            qemu_rearm_alarm_timer(alarm_timer);
1194 1194
        }
1195 1195
        /* Interrupt execution to force deadline recalculation.  */
1196
        if (use_icount && cpu_single_env) {
1197
            cpu_exit(cpu_single_env);
1198
        }
1196
        if (use_icount)
1197
            qemu_notify_event();
1199 1198
    }
1200 1199
}
1201 1200

  
......
1370 1369
#endif
1371 1370
        }
1372 1371
        event_pending = 1;
1372
        qemu_notify_event();
1373 1373
    }
1374 1374
}
1375 1375

  
......
3406 3406

  
3407 3407
void qemu_service_io(void)
3408 3408
{
3409
    CPUState *env = cpu_single_env;
3410
    if (env) {
3411
        cpu_exit(env);
3412
#ifdef CONFIG_KQEMU
3413
        if (env->kqemu_enabled) {
3414
            kqemu_cpu_interrupt(env);
3415
        }
3416
#endif
3417
    }
3409
    qemu_notify_event();
3418 3410
}
3419 3411

  
3420 3412
/***********************************************************/
......
3482 3474

  
3483 3475
void qemu_bh_schedule(QEMUBH *bh)
3484 3476
{
3485
    CPUState *env = cpu_single_env;
3486 3477
    if (bh->scheduled)
3487 3478
        return;
3488 3479
    bh->scheduled = 1;
3489 3480
    bh->idle = 0;
3490 3481
    /* stop the currently executing CPU to execute the BH ASAP */
3491
    if (env) {
3492
        cpu_exit(env);
3493
    }
3482
    qemu_notify_event();
3494 3483
}
3495 3484

  
3496 3485
void qemu_bh_cancel(QEMUBH *bh)
......
3701 3690
    } else {
3702 3691
        reset_requested = 1;
3703 3692
    }
3704
    if (cpu_single_env)
3705
        cpu_exit(cpu_single_env);
3693
    qemu_notify_event();
3706 3694
}
3707 3695

  
3708 3696
void qemu_system_shutdown_request(void)
3709 3697
{
3710 3698
    shutdown_requested = 1;
3711
    if (cpu_single_env)
3712
        cpu_exit(cpu_single_env);
3699
    qemu_notify_event();
3713 3700
}
3714 3701

  
3715 3702
void qemu_system_powerdown_request(void)
3716 3703
{
3717 3704
    powerdown_requested = 1;
3718
    if (cpu_single_env)
3719
        cpu_exit(cpu_single_env);
3705
    qemu_notify_event();
3706
}
3707

  
3708
void qemu_notify_event(void)
3709
{
3710
    CPUState *env = cpu_single_env;
3711

  
3712
    if (env) {
3713
        cpu_exit(env);
3714
#ifdef USE_KQEMU
3715
        if (env->kqemu_enabled)
3716
            kqemu_cpu_interrupt(env);
3717
#endif
3718
     }
3720 3719
}
3721 3720

  
3722 3721
#ifdef _WIN32

Also available in: Unified diff