public function run()
{
do {
$status = curl_multi_exec($this->multicurl, $active);
$info = curl_multi_info_read($this->multicurl);
if (false !== $info) {
$handle = $info['handle'];
$index = array_search($handle, $this->connections);
$callback = $this->callbacks[$index];
// If the handle has successfully fetched content
if ($info['msg'] == 1 && $info['result'] == 0) {
if ($callback != null) {
$result = 0;
$content = curl_multi_getcontent($handle);
call_user_func($callback, $result, $content);
}
} else {
if ($info["msg"] == 1) {
if ($callback != null) {
$result = $info['result'];
$content = '';
call_user_func($callback, $result, $content);
}
}
}
}
} while ($status === CURLM_CALL_MULTI_PERFORM || $active);
}