some system calls and signal will interrupt poll, <br>making event loop stops and fails to react events and keepalive message <br>from libvirt. <br>
adding handling EINTR to poll to make it more robust <br> <br>Signed-off-by: lvroyce <<a href="mailto:lvroyce@linux.vnet.ibm.com">lvroyce@linux.vnet.ibm.com</a>> <br>
--- <br> examples/domain-events/events-python/event-test.py | 8 +++++++- <br> 1 files changed, 7 insertions(+), 1 deletions(-) <br>
<br>diff --git a/examples/domain-events/events-python/event-test.py b/examples/domain-events/events-python/event-test.py<br>index 96dc268..b446c21 100644 <br>
--- a/examples/domain-events/events-python/event-test.py <br>+++ b/examples/domain-events/events-python/event-test.py <br>@@ -188,7 +188,13 @@ class virEventLoopPure: <br>
sleep = (next - now) / 1000.0 <br> <br> debug("Poll with a sleep of %d" % sleep) <br>
- events = self.poll.poll(sleep) <br>+ try: <br>+ events = self.poll.poll(sleep) <br>
+ except select.error, e: <br>+ self.runningPoll = False <br>+ if not e.errno in (errno.EINTR, errno.EAGAIN): <br>
+ raise <br>+ return <br> <br>
# Dispatch any file handle events that occurred <br> for (fd, revents) in events: <br>-- <br>
1.7.7.6<br>