From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=57602 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PrSt6-0008Uz-A3 for qemu-devel@nongnu.org; Mon, 21 Feb 2011 05:21:05 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PrSt5-0004mK-2E for qemu-devel@nongnu.org; Mon, 21 Feb 2011 05:21:04 -0500 Received: from mx1.redhat.com ([209.132.183.28]:19903) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PrSt4-0004m1-Lf for qemu-devel@nongnu.org; Mon, 21 Feb 2011 05:21:03 -0500 Message-ID: <4D623C8A.4070004@redhat.com> Date: Mon, 21 Feb 2011 11:20:58 +0100 From: Paolo Bonzini MIME-Version: 1.0 References: <1298277820-8817-1-git-send-email-pbonzini@redhat.com> <1298277820-8817-19-git-send-email-pbonzini@redhat.com> <4D623A73.5070207@siemens.com> In-Reply-To: <4D623A73.5070207@siemens.com> Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit Subject: [Qemu-devel] Re: [PATCH 18/21] move blocking of signals to qemu_signalfd_init List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Jan Kiszka Cc: qemu-devel@nongnu.org On 02/21/2011 11:12 AM, Jan Kiszka wrote: > On 2011-02-21 09:43, Paolo Bonzini wrote: >> This makes it easier to add a Win32 stub. The patch does that, too. >> >> Signed-off-by: Paolo Bonzini >> --- >> cpus.c | 87 ++++++++++++++++++++++++++------------------------------------- >> 1 files changed, 36 insertions(+), 51 deletions(-) >> >> diff --git a/cpus.c b/cpus.c >> index 1b6893d..5bb95d8 100644 >> --- a/cpus.c >> +++ b/cpus.c >> @@ -346,11 +346,37 @@ static void sigfd_handler(void *opaque) >> } >> } >> >> -static int qemu_signalfd_init(sigset_t mask) >> +static int qemu_signalfd_init(void) >> { >> int sigfd; >> + sigset_t set; >> >> - sigfd = qemu_signalfd(&mask); >> +#ifdef CONFIG_IOTHREAD >> + /* SIGUSR2 used by posix-aio-compat.c */ >> + sigemptyset(&set); >> + sigaddset(&set, SIGUSR2); >> + pthread_sigmask(SIG_UNBLOCK,&set, NULL); > > These lines are actually not related to signalfd setup. So you may want > to rename this function or move everything that does not block signals > and then pass the very same set to qemu_signalfd elsewhere. Ok, I'll just rename qemu_signalfd_init to qemu_init_iothread_signals. > For consistency reasons, you should also refactor the !IOTHREAD case. I think I did? non-iothread: >> int qemu_init_main_loop(void) >> { >> -#ifndef _WIN32 >> - sigset_t blocked_signals; >> int ret; >> >> - blocked_signals = block_synchronous_signals(); >> - >> - ret = qemu_signalfd_init(blocked_signals); >> + ret = qemu_signalfd_init(); >> if (ret) { >> return ret; >> } >> -#endif iothread: >> int qemu_init_main_loop(void) >> { >> int ret; >> - sigset_t blocked_signals; >> >> qemu_init_sigbus(); >> >> - blocked_signals = block_io_signals(); >> - >> - ret = qemu_signalfd_init(blocked_signals); >> + ret = qemu_signalfd_init(); >> if (ret) { >> return ret; >> } Paolo