On 10/20/2010 04:56 PM, Paolo Bonzini wrote:
On 10/20/2010 09:51 PM, Anthony Liguori wrote:
I don't understand why this loop is needed but we specifically wait for
a signal to get delivered that's either SIG_IPI or SIGBUS. We then check
whether a SIG_IPI or SIGBUS is pending and loop waiting for signals again.

Shouldn't we be looping on just sigismember(SIGBUS)?

You mean because SIG_IPI is a real-time signal and standard signals are delivered first? OTOH, real-time signals can be queued multiple times so it makes sense to loop on SIG_IPI as well.

BTW, we're no longer respecting timeout because we're not adjusting ts
after each iteration.

The timeout of qemu_kvm_eat_signal is always zero.

So then qemu_kvm_eat_signal purely polls and it will happily keep polling as long as there is a signal pending.

So what's the point of doing a sigtimedwait() and dropping qemu_mutex? Why not just check sigpending in a loop?

Regards,

Anthony Liguori

Paolo


Reply via email to