eventloop.c: apply patch from Jonas Bonn to retry read when failed with EINTR.

This can occur when libraw1394 caller receives a signal while in this read and
the caller is not using a signal handler set with signal().


git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@177 53a565d1-3bb7-0310-b661-cf11e63c67ab
This commit is contained in:
ddennedy 2008-03-27 20:25:23 +00:00
parent 77b6ef1f9e
commit 8bb915dd16
1 changed files with 3 additions and 2 deletions

View File

@ -21,6 +21,7 @@
#include <config.h> #include <config.h>
#include <unistd.h> #include <unistd.h>
#include <byteswap.h> #include <byteswap.h>
#include <errno.h>
#include "raw1394.h" #include "raw1394.h"
#include "kernel-raw1394.h" #include "kernel-raw1394.h"
@ -32,8 +33,8 @@ int raw1394_loop_iterate(struct raw1394_handle *handle)
struct raw1394_request req; struct raw1394_request req;
int retval = 0, channel; int retval = 0, channel;
if (read(handle->fd, &req, sizeof(req)) < 0) { while (read(handle->fd, &req, sizeof(req)) < 0) {
return -1; if (errno != EINTR) return -1;
} }
switch (req.type) { switch (req.type) {