mirror of
https://git.FreeBSD.org/ports.git
synced 2024-11-01 22:05:08 +00:00
b584ea4bbb
This release has a C++ lib, thread support (in the fcgiapp and Perl lib), and some platform fixes.
65 lines
1.6 KiB
Plaintext
65 lines
1.6 KiB
Plaintext
--- 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);
|
||
}
|
||
|
||
/*
|