diff options
| -rw-r--r-- | src/core/console.c | 6 | ||||
| -rw-r--r-- | src/core/getkey.c | 2 |
2 files changed, 8 insertions, 0 deletions
diff --git a/src/core/console.c b/src/core/console.c index cd3239d6f..830f45390 100644 --- a/src/core/console.c +++ b/src/core/console.c @@ -1,5 +1,6 @@ #include "stddef.h" #include "console.h" +#include <gpxe/process.h> /** @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 20528ffcd..71ec6cc1b 100644 --- a/src/core/getkey.c +++ b/src/core/getkey.c @@ -18,6 +18,7 @@ #include <console.h> #include <latch.h> +#include <gpxe/process.h> #include <gpxe/keys.h> /** @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(); } |
