From 2371a9c7d1c0d8ce89a740fc37325eecf7d6ffcd Mon Sep 17 00:00:00 2001
From: Nathan Gass
Date: Tue, 25 Oct 2011 14:23:02 +0000
Subject: replace busy curl_multi loop by correct curl_multi loop from php doku

---
 it_url.class | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/it_url.class b/it_url.class
index baac7c7..d943346 100644
--- a/it_url.class
+++ b/it_url.class
@@ -389,9 +389,20 @@ function get_multi($p=null)
 		curl_multi_add_handle($mh, $ch[$key]);
 	}
 
+	// curl_multi loop copied from example at http://php.net/manual/en/function.curl-multi-exec.php 
+	$active = null;
+	//execute the handles
 	do {
-		curl_multi_exec($mh, $running);
-	} while ($running > 0);
+		$mrc = curl_multi_exec($mh, $active);
+	} while ($mrc == CURLM_CALL_MULTI_PERFORM);
+
+	while ($active && $mrc == CURLM_OK) {
+		if (curl_multi_select($mh) != -1) {
+			do {
+				$mrc = curl_multi_exec($mh, $active);
+			} while ($mrc == CURLM_CALL_MULTI_PERFORM);
+		}
+	}
 
 	$results = array();
 	foreach ($p['urls'] as $key => $url)
-- 
cgit v1.2.3