diff options
| author | Michael Brown | 2006-12-27 23:59:40 +0100 |
|---|---|---|
| committer | Michael Brown | 2006-12-27 23:59:40 +0100 |
| commit | b6def29f2be0d6b2d84085eeff74299a04f99b33 (patch) | |
| tree | a7a65e846dbcc25c8fc767f0084cb4b05edaa616 /src/core | |
| parent | Added times to start/stop log messages (diff) | |
| download | ipxe-b6def29f2be0d6b2d84085eeff74299a04f99b33.tar.gz ipxe-b6def29f2be0d6b2d84085eeff74299a04f99b33.tar.xz ipxe-b6def29f2be0d6b2d84085eeff74299a04f99b33.zip | |
Keep running the main processing loop while waiting for input.
Diffstat (limited to 'src/core')
| -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(); } |
