Il 25/09/2014 17:51, Peter Maydell ha scritto: > Add the termination signals SIGINT, SIGHUP and SIGTERM to the > list of signals which we handle synchronously via a signalfd. > This avoids a race condition where if we took the SIGTERM > in the middle of qemu_shutdown_requested: > int r = shutdown_requested; > [SIGTERM here...] > shutdown_requested = 0; > > then the setting of the shutdown_requested flag by > termsig_handler() would be lost and QEMU would fail to > shut down. This was causing 'make check' to hang occasionally. > > Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> > Cc: qemu-sta...@nongnu.org > --- > main-loop.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/main-loop.c b/main-loop.c > index 3cc79f8..8746abc 100644 > --- a/main-loop.c > +++ b/main-loop.c > @@ -84,6 +84,9 @@ static int qemu_signal_init(void) > sigaddset(&set, SIGIO); > sigaddset(&set, SIGALRM); > sigaddset(&set, SIGBUS); > + sigaddset(&set, SIGINT); > + sigaddset(&set, SIGHUP); > + sigaddset(&set, SIGTERM); > pthread_sigmask(SIG_BLOCK, &set, NULL); > > sigdelset(&set, SIG_IPI); >
Reviewed-by: Paolo Bonzini <pbonz...@redhat.com> Paolo