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
|
#ifdef CONFIG_POSIX
|
||||||
struct sigaction action;
|
struct sigaction action;
|
||||||
|
sigset_t set;
|
||||||
|
|
||||||
memset(&action, 0, sizeof(action));
|
memset(&action, 0, sizeof(action));
|
||||||
sigfillset(&action.sa_mask);
|
sigfillset(&action.sa_mask);
|
||||||
action.sa_handler = sigusr_print;
|
action.sa_handler = sigusr_print;
|
||||||
action.sa_flags = 0;
|
action.sa_flags = 0;
|
||||||
sigaction(SIGUSR1, &action, NULL);
|
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
|
#endif
|
||||||
|
|
||||||
state.print = progress_dummy_print;
|
state.print = progress_dummy_print;
|
||||||
|
|
Loading…
Reference in New Issue