1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-11-01 22:05:08 +00:00
freebsd-ports/www/fcgi/files/patch-ab
Kelly Yancey b584ea4bbb Update fcgi dev-kit to version 2.2.0. From the release announcement:
This release has a C++ lib, thread support (in the fcgiapp and
	Perl lib), and some platform fixes.
2000-08-20 21:42:27 +00:00

65 lines
1.6 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

--- 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);
}
/*