mirror of
https://github.com/xcat2/xNBA.git
synced 2025-01-20 14:33:15 +00:00
[ui] Add progress dots while waiting on any foreground job
Print one dot per second while waiting in monojob.c (e.g. for DHCP, for file downloads, etc.), to inform user that the system has not locked up. Patch contributed by Andrew Schran <aschran@google.com>, minor modification by me.
This commit is contained in:
parent
764e2cc68c
commit
702e0be44e
@ -24,6 +24,7 @@
|
||||
#include <gpxe/keys.h>
|
||||
#include <gpxe/job.h>
|
||||
#include <gpxe/monojob.h>
|
||||
#include <gpxe/timer.h>
|
||||
|
||||
/** @file
|
||||
*
|
||||
@ -62,9 +63,11 @@ struct job_interface monojob = {
|
||||
int monojob_wait ( const char *string ) {
|
||||
int key;
|
||||
int rc;
|
||||
tick_t last_progress_dot;
|
||||
|
||||
printf ( "%s... ", string );
|
||||
printf ( "%s.", string );
|
||||
monojob_rc = -EINPROGRESS;
|
||||
last_progress_dot = currticks();
|
||||
while ( monojob_rc == -EINPROGRESS ) {
|
||||
step();
|
||||
if ( iskey() ) {
|
||||
@ -78,14 +81,18 @@ int monojob_wait ( const char *string ) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ( ( currticks() - last_progress_dot ) > TICKS_PER_SEC ) {
|
||||
printf ( "." );
|
||||
last_progress_dot = currticks();
|
||||
}
|
||||
}
|
||||
rc = monojob_rc;
|
||||
|
||||
done:
|
||||
if ( rc ) {
|
||||
printf ( "%s\n", strerror ( rc ) );
|
||||
printf ( " %s\n", strerror ( rc ) );
|
||||
} else {
|
||||
printf ( "ok\n" );
|
||||
printf ( " ok\n" );
|
||||
}
|
||||
return rc;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user