From: Daniel Veillard Date: Fri, 30 Oct 2009 11:08:26 +0000 (+0100) Subject: Remote code caught EINTR making it ininterruptable X-Git-Tag: v0.7.3~168 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=47fec8eac2bb38246addb0a0cc368fdbadad4738;p=thirdparty%2Flibvirt.git Remote code caught EINTR making it ininterruptable John Levon raised the issue that remoteIOEventLoop() poll call was reissued after EINTR was caught making it uninterruptible. * src/remote/remote_driver.c: catch EAGAIN instead as suggested by Richard Jones --- diff --git a/src/remote/remote_driver.c b/src/remote/remote_driver.c index bf001ebdeb..a1989999c9 100644 --- a/src/remote/remote_driver.c +++ b/src/remote/remote_driver.c @@ -7845,7 +7845,7 @@ remoteIOEventLoop(virConnectPtr conn, repoll: ret = poll(fds, ARRAY_CARDINALITY(fds), -1); - if (ret < 0 && errno == EINTR) + if (ret < 0 && errno == EAGAIN) goto repoll; remoteDriverLock(priv);