Leave inner main_loop faster on pending requests

If there is any pending request that requires us to leave the inner loop
if main_loop, makes sure we do this as soon as possible by enforcing
non-blocking IO processing.

At this change, move variable definitions out of the inner loop to
improve readability.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
This commit is contained in:
Jan Kiszka 2011-02-01 22:15:46 +01:00 committed by Marcelo Tosatti
parent 38145df24c
commit 8e1b90ecc5

11
vl.c
View file

@ -1402,18 +1402,21 @@ qemu_irq qemu_system_powerdown;
static void main_loop(void)
{
bool nonblocking = false;
#ifdef CONFIG_PROFILER
int64_t ti;
#endif
int r;
qemu_main_loop_start();
for (;;) {
do {
bool nonblocking = false;
#ifdef CONFIG_PROFILER
int64_t ti;
#endif
#ifndef CONFIG_IOTHREAD
nonblocking = cpu_exec_all();
if (!vm_can_run()) {
nonblocking = true;
}
#endif
#ifdef CONFIG_PROFILER
ti = profile_getclock();