eventloop.c: apply patch from Jonas Bonn to retrty read when failed with EINTR.
This can occur when libraw1394 callera receives a signal while in the read and the caller is not using a signal handler set with signal(). git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@178 53a565d1-3bb7-0310-b661-cf11e63c67ab
This commit is contained in:
parent
8bb915dd16
commit
4ce7f7d8f0
|
@ -21,7 +21,6 @@
|
||||||
#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"
|
||||||
|
@ -33,8 +32,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;
|
||||||
|
|
||||||
while (read(handle->fd, &req, sizeof(req)) < 0) {
|
if (read(handle->fd, &req, sizeof(req)) < 0) {
|
||||||
if (errno != EINTR) return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (req.type) {
|
switch (req.type) {
|
||||||
|
|
Reference in New Issue