summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGravatar Dan Dennedy 2008-03-27 09:48:02 -0700
committerGravatar Dan Dennedy 2008-03-27 09:48:02 -0700
commita118281f859d9a4e47d682da04e88c1d2f3c4ddd (patch)
tree9928bedfcda1253996f394c309b07ea03151e5e1 /src
parentfix documentation on raw1394_update_config_rom (diff)
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().
Diffstat (limited to 'src')
-rw-r--r--src/eventloop.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/eventloop.c b/src/eventloop.c
index 0ddd455..4a027b2 100644
--- a/src/eventloop.c
+++ b/src/eventloop.c
@@ -21,6 +21,7 @@
#include <config.h>
#include <unistd.h>
#include <byteswap.h>
+#include <errno.h>
#include "raw1394.h"
#include "kernel-raw1394.h"
@@ -32,8 +33,8 @@ int raw1394_loop_iterate(struct raw1394_handle *handle)
struct raw1394_request req;
int retval = 0, channel;
- if (read(handle->fd, &req, sizeof(req)) < 0) {
- return -1;
+ while (read(handle->fd, &req, sizeof(req)) < 0) {
+ if (errno != EINTR) return -1;
}
switch (req.type) {
' /> aeb 3-5/+6 git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@21 53a565d1-3bb7-0310-b661-cf11e63c67ab 2000-03-18Mention byte order change.Gravatar aeb 1-0/+2 git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@20 53a565d1-3bb7-0310-b661-cf11e63c67ab 2000-03-18Mention SourceForge home.Gravatar aeb 1-1/+5 git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@19 53a565d1-3bb7-0310-b661-cf11e63c67ab Gravatar' /> aeb 6-0/+54 2000-06-11Added explicit AC_PROG_INSTALL call.Gravatar aeb 1-0/+1 2000-06-09Fix size of error field.Gravatar aeb 1-2/+2 2000-06-02Modified support for 32/64 bit environments, control struct fields have fixed...Gravatar aeb 7-43/+28 2000-05-28Added support for environments with 64 bit kernel and 32 bit userland.Gravatar aeb 8-7/+45 2000-04-27Fixed missing setting of ext code in raw1394_start_lock()Gravatar aeb 1-0/+1 2000-04-15Fixed lock transaction to actually return response value.Gravatar aeb 3-5/+11 2000-04-12Add userdata functions as news.Gravatar aeb 1-0/+4 2000-04-05Add userdata functions.Gravatar aeb 3-0/+18 2000-03-18Bump version number to 0.6.Gravatar aeb 3-5/+6 2000-03-18Mention byte order change.Gravatar aeb 1-0/+2 2000-03-18Mention SourceForge home.Gravatar aeb 1-1/+5