mirror of https://gitee.com/openkylin/qemu.git
qemu-progress: Fix progress printing on SIGUSR1
Since commit a7aae221
('Switch SIG_IPI to SIGUSR1'), SIGUSR1 is blocked
during startup, breaking the progress report in tools.
This patch reenables the signal when initialising a progress report.
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Benoit Canet <benoit@irqsave.net>
This commit is contained in:
parent
e69968d472
commit
3c4b4e383e
|
@ -82,12 +82,22 @@ static void progress_dummy_init(void)
|
|||
{
|
||||
#ifdef CONFIG_POSIX
|
||||
struct sigaction action;
|
||||
sigset_t set;
|
||||
|
||||
memset(&action, 0, sizeof(action));
|
||||
sigfillset(&action.sa_mask);
|
||||
action.sa_handler = sigusr_print;
|
||||
action.sa_flags = 0;
|
||||
sigaction(SIGUSR1, &action, NULL);
|
||||
|
||||
/*
|
||||
* SIGUSR1 is SIG_IPI and gets blocked in qemu_init_main_loop(). In the
|
||||
* tools that use the progress report SIGUSR1 isn't used in this meaning
|
||||
* and instead should print the progress, so reenable it.
|
||||
*/
|
||||
sigemptyset(&set);
|
||||
sigaddset(&set, SIGUSR1);
|
||||
pthread_sigmask(SIG_UNBLOCK, &set, NULL);
|
||||
#endif
|
||||
|
||||
state.print = progress_dummy_print;
|
||||
|
|
Loading…
Reference in New Issue