From b6def29f2be0d6b2d84085eeff74299a04f99b33 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Wed, 27 Dec 2006 22:59:40 +0000 Subject: [PATCH] Keep running the main processing loop while waiting for input. --- src/core/console.c | 6 ++++++ src/core/getkey.c | 2 ++ 2 files changed, 8 insertions(+) diff --git a/src/core/console.c b/src/core/console.c index cd3239d6..830f4539 100644 --- a/src/core/console.c +++ b/src/core/console.c @@ -1,5 +1,6 @@ #include "stddef.h" #include "console.h" +#include /** @file */ @@ -97,6 +98,11 @@ int getchar ( void ) { * less CPU time in a VMware session. */ cpu_nap(); + + /* Keep processing background tasks while we wait for + * input. + */ + step(); console = has_input(); if ( console && console->getchar ) diff --git a/src/core/getkey.c b/src/core/getkey.c index 20528ffc..71ec6cc1 100644 --- a/src/core/getkey.c +++ b/src/core/getkey.c @@ -18,6 +18,7 @@ #include #include +#include #include /** @file @@ -38,6 +39,7 @@ static int getchar_timeout ( unsigned long timeout ) { unsigned long expiry = ( currticks() + timeout ); while ( currticks() < expiry ) { + step(); if ( iskey() ) return getchar(); }