Forum Moderators: coopster
Here:
[php.net...]
I found Found this good explanation from viczbk.ru about CURLM_CALL_MULTI_PERFORM:
"When you've added the handles you have for the moment (you can still add new ones at any time), you start the transfers by call curl_multi_perform(3).
curl_multi_perform(3) is asynchronous. It will only execute as little as possible and then return back control to your program. It is designed to never block. If it returns CURLM_CALL_MULTI_PERFORM you better call it again soon, as that is a signal that it still has local data to send or remote data to receive."
Notice, curl_multi_perform vs curl_multi_exec - the first allows asynchronous IO, curl_multi_exec does not. The while loop you have may be expecting curl_multi_exec to allow asynchronous IO when it does not.
I'm not 100% sure of the loop intentions without knowing what handles it will execute.