dmitry Mon Feb 26 09:39:08 2007 UTC
Modified files:
/php-src/sapi/cgi fastcgi.c
Log:
poll() is not affected by FD_SETSIZE (Tony)
http://cvs.php.net/viewvc.cgi/php-src/sapi/cgi/fastcgi.c?r1=1.33&r2=1.34&diff_format=u
Index: php-src/sapi/cgi/fastcgi.c
diff -u php-src/sapi/cgi/fastcgi.c:1.33 php-src/sapi/cgi/fastcgi.c:1.34
--- php-src/sapi/cgi/fastcgi.c:1.33 Sat Feb 24 11:21:10 2007
+++ php-src/sapi/cgi/fastcgi.c Mon Feb 26 09:39:08 2007
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: fastcgi.c,v 1.33 2007/02/24 11:21:10 dmitry Exp $ */
+/* $Id: fastcgi.c,v 1.34 2007/02/26 09:39:08 dmitry Exp $ */
#include "php.h"
#include "fastcgi.h"
@@ -764,22 +764,23 @@
break;
#else
if (req->fd >= 0) {
- if (req->fd < FD_SETSIZE) {
#if defined(HAVE_SYS_POLL_H) && defined(HAVE_POLL)
- struct pollfd fds;
- int ret;
+ struct pollfd fds;
+ int ret;
- fds.fd = req->fd;
- fds.events = POLLIN;
- fds.revents = 0;
- do {
- errno = 0;
- ret = poll(&fds, 1,
5000);
- } while (ret < 0 && errno ==
EINTR);
- if (ret > 0 && (fds.revents &
POLLIN)) {
- break;
- }
+ fds.fd = req->fd;
+ fds.events = POLLIN;
+ fds.revents = 0;
+ do {
+ errno = 0;
+ ret = poll(&fds, 1, 5000);
+ } while (ret < 0 && errno == EINTR);
+ if (ret > 0 && (fds.revents & POLLIN)) {
+ break;
+ }
+ fcgi_close(req, 1, 0);
#else
+ if (req->fd < FD_SETSIZE) {
struct timeval tv = {5,0};
fd_set set;
int ret;
@@ -793,12 +794,12 @@
if (ret > 0 &&
FD_ISSET(req->fd, &set)) {
break;
}
-#endif
fcgi_close(req, 1, 0);
} else {
fprintf(stderr, "Too many open
file descriptors. FD_SETSIZE limit exceeded.");
fcgi_close(req, 1, 0);
}
+#endif
}
#endif
}-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
