@@ -323,8 +323,10 @@ |
||
| 323 | 323 | // NOTE: DO NOT call curl_multi_remove_handle |
| 324 | 324 | // or curl_multi_add_handle while looping curl_multi_info_read! |
| 325 | 325 | $entries = array(); |
| 326 | - do if ($entry = curl_multi_info_read($this->mh, $remains)) { |
|
| 326 | + do { |
|
| 327 | + if ($entry = curl_multi_info_read($this->mh, $remains)) { |
|
| 327 | 328 | $entries[] = $entry; |
| 329 | + } |
|
| 328 | 330 | } while ($remains); |
| 329 | 331 | // Remove done and consume queue. |
| 330 | 332 | foreach ($entries as $entry) { |
@@ -54,14 +54,14 @@ |
||
| 54 | 54 | * - "async" (Co::async calls) |
| 55 | 55 | */ |
| 56 | 56 | private $options = array(); |
| 57 | - private $mh; // curl_multi_init() |
|
| 58 | - private $count = 0; // count(curl_multi_add_handle called) |
|
| 59 | - private $queue = array(); // cURL resources over concurrency limits are temporalily stored here |
|
| 60 | - private $tree = array(); // array<*Stack ID*, mixed> |
|
| 61 | - private $values = array(); // array<*Stack ID*|*cURL ID*, Generator|resource> |
|
| 62 | - private $value_to_parent = array(); // array<*Stack ID*|*cURL ID*, *Stack ID*> |
|
| 57 | + private $mh; // curl_multi_init() |
|
| 58 | + private $count = 0; // count(curl_multi_add_handle called) |
|
| 59 | + private $queue = array(); // cURL resources over concurrency limits are temporalily stored here |
|
| 60 | + private $tree = array(); // array<*Stack ID*, mixed> |
|
| 61 | + private $values = array(); // array<*Stack ID*|*cURL ID*, Generator|resource> |
|
| 62 | + private $value_to_parent = array(); // array<*Stack ID*|*cURL ID*, *Stack ID*> |
|
| 63 | 63 | private $value_to_children = array(); // array<*Stack ID*, array<*Stack ID*|*cURL ID*, true>> |
| 64 | - private $value_to_keylist = array(); // array<*Stack ID*|*cURL ID*, array<mixed>> |
|
| 64 | + private $value_to_keylist = array(); // array<*Stack ID*|*cURL ID*, array<mixed>> |
|
| 65 | 65 | |
| 66 | 66 | /** |
| 67 | 67 | * Override or get default settings. |