mirror of
https://github.com/xemu-project/xemu.git
synced 2025-03-03 10:07:39 +00:00
qemu-progress.c: printf isn't signal safe
Change the signal handling to indicate a signal is pending, rather then printing directly from the signal handler. In addition make the signal prints go to stderr, rather than stdout. Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
ab71982716
commit
2ab3cb8c0a
@ -37,6 +37,7 @@ struct progress_state {
|
||||
};
|
||||
|
||||
static struct progress_state state;
|
||||
static volatile sig_atomic_t print_pending;
|
||||
|
||||
/*
|
||||
* Simple progress print function.
|
||||
@ -63,12 +64,16 @@ static void progress_simple_init(void)
|
||||
#ifdef CONFIG_POSIX
|
||||
static void sigusr_print(int signal)
|
||||
{
|
||||
printf(" (%3.2f/100%%)\n", state.current);
|
||||
print_pending = 1;
|
||||
}
|
||||
#endif
|
||||
|
||||
static void progress_dummy_print(void)
|
||||
{
|
||||
if (print_pending) {
|
||||
fprintf(stderr, " (%3.2f/100%%)\n", state.current);
|
||||
print_pending = 0;
|
||||
}
|
||||
}
|
||||
|
||||
static void progress_dummy_end(void)
|
||||
|
Loading…
x
Reference in New Issue
Block a user