1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-11-03 22:23:24 +00:00
freebsd-ports/www/fcgi/files/patch-ab

65 lines
1.6 KiB
Plaintext
Raw Normal View History

--- libfcgi/os_unix.c.orig Wed Aug 2 05:36:43 2000
+++ libfcgi/os_unix.c Sun Aug 20 14:32:35 2000
@@ -404,9 +404,13 @@
*/
int OS_Read(int fd, char * buf, size_t len)
{
- return(read(fd, buf, len));
+ int result;
+ do {
+ result = read(fd, buf, len);
+ } while((result == -1) && (errno == EINTR));
+ return(result);
}
-
+
/*
*--------------------------------------------------------------
*
@@ -425,10 +429,13 @@
*/
int OS_Write(int fd, char * buf, size_t len)
{
- return(write(fd, buf, len));
+ int result;
+ do {
+ result = write(fd, buf, len);
+ } while((result == -1) && (errno == EINTR));
+ return(result);
}
-
/*
*----------------------------------------------------------------------
*
@@ -753,8 +760,10 @@
* any work to do.
*/
if(numRdPosted == 0 && numWrPosted == 0) {
- selectStatus = select((maxFd+1), &readFdSetCpy, &writeFdSetCpy,
- NULL, tmo);
+ do {
+ selectStatus = select((maxFd+1), &readFdSetCpy, &writeFdSetCpy,
+ NULL, tmo);
+ } while ((selectStatus == -1) && (errno == EINTR));
if(selectStatus < 0) {
exit(errno);
}
@@ -1020,11 +1029,15 @@
{
struct timeval tval = { READABLE_UNIX_FD_DROP_DEAD_TIMEVAL };
fd_set read_fds;
+ int result;
FD_ZERO(&read_fds);
FD_SET(fd, &read_fds);
- return select(fd + 1, &read_fds, NULL, NULL, &tval) >= 0 && FD_ISSET(fd, &read_fds);
+ do {
+ result = select(fd + 1, &read_fds, NULL, NULL, &tval);
+ } while((result == -1) && (errno == EINTR));
+ return result >= 0 && FD_ISSET(fd, &read_fds);
}
/*