cvs: php-src /ext/curl streams.c
| From: | Ilia Alshanetsky | Date: | Mon, 23 Feb 2009 15:58:41 +0000 |
| Subject: | cvs: php-src /ext/curl streams.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-56358@lists.php.net to get a copy of this message | ||
iliaa Mon Feb 23 15:58:41 2009 UTC
Modified files:
/php-src/ext/curl streams.c
Log:
MFB: Fixed bug #47477 (php_curl_stream_read() unnecessarily sleeps 15 secs
under heavy load)
http://cvs.php.net/viewvc.cgi/php-src/ext/curl/streams.c?r1=1.30&r2=1.31&diff_format=u
Index: php-src/ext/curl/streams.c
diff -u php-src/ext/curl/streams.c:1.30 php-src/ext/curl/streams.c:1.31
--- php-src/ext/curl/streams.c:1.30 Wed Dec 31 11:12:30 2008
+++ php-src/ext/curl/streams.c Mon Feb 23 15:58:41 2009
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: streams.c,v 1.30 2008/12/31 11:12:30 sebastian Exp $ */
+/* $Id: streams.c,v 1.31 2009/02/23 15:58:41 iliaa Exp $ */
/* This file implements cURL based wrappers.
* NOTE: If you are implementing your own streams that are intended to
@@ -169,7 +169,8 @@
tv.tv_sec = 15; /* TODO: allow this to be configured from the script */
/* wait for data */
- switch (select(curlstream->maxfd + 1, &curlstream->readfds,
&curlstream->writefds, &curlstream->excfds, &tv)) {
+ switch ((curlstream->maxfd < 0) ? 1 :
+ select(curlstream->maxfd + 1, &curlstream->readfds, &curlstream->writefds,
&curlstream->excfds, &tv)) {
case -1:
/* error */
return 0;
@@ -182,7 +183,8 @@
curlstream->mcode = curl_multi_perform(curlstream->multi, &curlstream->pending);
} while (curlstream->mcode == CURLM_CALL_MULTI_PERFORM);
}
- } while (curlstream->readbuffer.readpos >= curlstream->readbuffer.writepos &&
curlstream->pending > 0);
+ } while (curlstream->maxfd >= 0 &&
+ curlstream->readbuffer.readpos >= curlstream->readbuffer.writepos &&
curlstream->pending > 0);
}