The select() do not masked signal in os_host_main_loop_wait. For example, qemu-timer.c gives SIGALRM regularly. Even if a buffer of select is empty, I think that it is a problem that this select() does exit by this SIGALRM.
-- E.Furukawa > -----Original Message----- > From: Stefan Hajnoczi [mailto:stefa...@gmail.com] > Sent: Thursday, November 29, 2012 11:18 PM > To: Furukawa, Eiji/古川 英治 > Cc: qemu-devel@nongnu.org > Subject: Re: [Qemu-devel] main-loop.c: About Select handling > > On Wed, Nov 28, 2012 at 03:08:24AM +0000, Furukawa, Eiji wrote: > > About a source of qemu-1.2.0/main-loop.c The select handling of > > os_host_main_loop_wait function I do not seem to do Exit by interrupts > > such as SIGUSR1 Will not it be necessary to make modifications? > > > > Before > > LineNumber:308 ret = select(nfds + 1, &rfds, &wfds, &xfds, tvarg); > > > > After(Example) > > do { > > ret = select(nfds + 1, &rfds, &wfds, &xfds, tvarg); > > } while(ret == -1 && (errno == EINTR || errno == EAGAIN)) > > What is the specific bug or problem you're seeing? > > QEMU uses several signals internally and sets up per-thread signal masks > appropriately. > > Stefan