diff options
| -rw-r--r-- | it_url.class | 37 | 
1 files changed, 18 insertions, 19 deletions
| diff --git a/it_url.class b/it_url.class index d8e5afb..81729c6 100644 --- a/it_url.class +++ b/it_url.class @@ -404,29 +404,28 @@ function get_multi($p=null)  	} while ($mrc == CURLM_CALL_MULTI_PERFORM);  	$timeout = 0.001;	# Very short timeout to work around problem with first select call on cURL 7.25.0 -	while (!$abort && $active && $mrc == CURLM_OK)  +	while (!$abort && $active && $mrc == CURLM_OK)  	{ -		if (curl_multi_select($mh, $timeout) != -1)  -		{ -			do { -				$mrc = curl_multi_exec($mh, $active); +		if (curl_multi_select($mh, $timeout) == -1) +			usleep($timeout * 1000000); +		do { +			$mrc = curl_multi_exec($mh, $active); -				while (($info = curl_multi_info_read($mh)) !== false) +			while (($info = curl_multi_info_read($mh)) !== false) +			{ +				if ($info['msg'] == CURLMSG_DONE)  				{ -					if ($info['msg'] == CURLMSG_DONE) -					{ -						$key = $keys[$info['handle']]; -						EDC('reqtimings', $key, $info['result'], (microtime(true) - $start) * 1000); -						if ($info['result'] == CURLE_OK) -							$results_unordered[$key] = curl_multi_getcontent($info['handle']); -						else -							$results_unordered[$key] = false; -						if (($handler = $urls[$keys[$info['handle']]]['handler'])) -							$abort = $handler($info['result'], $results_unordered[$key]); -					} +					$key = $keys[$info['handle']]; +					EDC('reqtimings', $key, $info['result'], (microtime(true) - $start) * 1000); +					if ($info['result'] == CURLE_OK) +						$results_unordered[$key] = curl_multi_getcontent($info['handle']); +					else +						$results_unordered[$key] = false; +					if (($handler = $urls[$keys[$info['handle']]]['handler'])) +						$abort = $handler($info['result'], $results_unordered[$key]);  				} -			} while ($mrc == CURLM_CALL_MULTI_PERFORM); -		} +			} +		} while ($mrc == CURLM_CALL_MULTI_PERFORM);  		$timeout = 0.1;	# Longer delay to avoid busy loop but shorter than default of 1s in case we stil hit cURL 7.25.0 problem  	} |