@@ -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<cURL>> |
|
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<cURL>> |
|
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. |