Displaying 1 result from an estimated 1 matches for "do_select_again".
2012 Jan 19
3
[PATCH] libxl_qmp: Handle unexpected end-of-socket
...a/tools/libxl/libxl_qmp.c b/tools/libxl/libxl_qmp.c
index 1777e44..d3b1d53 100644
--- a/tools/libxl/libxl_qmp.c
+++ b/tools/libxl/libxl_qmp.c
@@ -385,18 +385,22 @@ static int qmp_next(libxl__gc *gc, libxl__qmp_handler *qmp)
FD_ZERO(&rfds);
FD_SET(qmp->qmp_fd, &rfds);
+do_select_again:
ret = select(qmp->qmp_fd + 1, &rfds, NULL, NULL, &timeout);
if (ret == 0) {
LIBXL__LOG(qmp->ctx, LIBXL__LOG_ERROR, "timeout");
return -1;
} else if (ret < 0) {
+ if (errno == EINTR)
+ goto do_...