--SKIPIF--
<?php
include 'skip.inc';
-skipif(!defined("HTTP_SUPPORT_PERSISTENCE") || !http_support(HTTP_SUPPORT_PERSISTENCE), "need persistent handle support");
+skipif(!http_support(HTTP_SUPPORT_REQUESTS), "need request support");
?>
--INI--
+http.persistent.handles.limit=-1
http.persistent.handles.ident=GLOBAL
--FILE--
<?php
echo "-TEST\n";
-echo "No free handles:\n";
-var_dump(http_persistent_handles_count());
+echo "No free handles!\n";
+foreach (http_persistent_handles_count() as $provider => $idents) {
+ foreach ((array)$idents as $ident => $counts) {
+ if (!empty($counts["free"])) {
+ printf("%s, %s, %s\n", $provider, $ident, $counts["free"]);
+ }
+ }
+}
+
http_get("http://www.google.com/", null, $info[]);
-echo "One free request handle within GLOBAL:\n";
-var_dump(http_persistent_handles_count()->http_request["GLOBAL"]);
-echo "Reusing request handle:\n";
+
+echo "One free request handle within GLOBAL: ";
+var_dump(http_persistent_handles_count()->http_request["GLOBAL"]["free"]);
+
+echo "Reusing request handle: ";
http_get("http://www.google.com/", null, $info[]);
-var_dump($info[0]["pretransfer_time"] > 100 * $info[1]["pretransfer_time"], $info[0]["pretransfer_time"], $info[1]["pretransfer_time"]);
+var_dump($info[0]["pretransfer_time"] > 10 * $info[1]["pretransfer_time"], $info[0]["pretransfer_time"], $info[1]["pretransfer_time"]);
+
echo "Handles' been cleaned up:\n";
-#http_persistent_handles_clean();
-var_dump(http_persistent_handles_count());
+http_persistent_handles_clean();
+print_r(http_persistent_handles_count());
+
echo "Done\n";
?>
--EXPECTF--
%sTEST
-No free handles:
-object(stdClass)#%d (%d) {
- ["http_request_pool"]=>
- array(0) {
- }
- ["http_request"]=>
- array(0) {
- }
- ["http_request_datashare"]=>
- array(0) {
- }
- ["http_request_datashare_lock"]=>
- array(0) {
- }
-}
-One free request handle within GLOBAL:
-int(1)
-Reusing request handle:
-bool(true)
+No free handles!
+One free request handle within GLOBAL: int(1)
+Reusing request handle: bool(true)
float(%f)
float(%f)
Handles' been cleaned up:
-object(stdClass)#%d (%d) {
- ["http_request_pool"]=>
- array(0) {
- }
- ["http_request"]=>
- array(1) {
- ["GLOBAL"]=>
- int(1)
- }
- ["http_request_datashare"]=>
- array(0) {
- }
- ["http_request_datashare_lock"]=>
- array(0) {
- }
-}
+stdClass Object
+(
+ [http_request] => Array
+ (
+ [GLOBAL] => Array
+ (
+ [used] => 0
+ [free] => 0
+ )
+
+ )
+
+ [http_request_datashare] => Array
+ (
+ [GLOBAL] => Array
+ (
+ [used] => 0
+ [free] => 0
+ )
+
+ )
+
+ [http_request_datashare_lock] => Array
+ (
+ [GLOBAL] => Array
+ (
+ [used] => 0
+ [free] => 0
+ )
+
+ )
+
+ [http_request_pool] => Array
+ (
+ [GLOBAL] => Array
+ (
+ [used] => 0
+ [free] => 0
+ )
+
+ )
+
+)
Done