From b77ff4d589785861b0a91bef6b6fc2a261374f1c Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Tue, 18 Nov 2014 20:51:54 +0100 Subject: [PATCH] multi: move the ending condition into the loop as well ... as it was before I changed the loop in commit e04ccbd50. It caused test 2030 and 2032 to fail. --- lib/multi.c | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/lib/multi.c b/lib/multi.c index 7e1adf765..080e54bce 100644 --- a/lib/multi.c +++ b/lib/multi.c @@ -956,7 +956,7 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi, data->state.pipe_broke = FALSE; data->easy_conn = NULL; - break; + continue; } if(!data->easy_conn && @@ -1750,22 +1750,23 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi, rc = CURLM_CALL_MULTI_PERFORM; } } + + if(CURLM_STATE_COMPLETED == data->mstate) { + /* now fill in the Curl_message with this info */ + msg = &data->msg; + + msg->extmsg.msg = CURLMSG_DONE; + msg->extmsg.easy_handle = data; + msg->extmsg.data.result = result; + + rc = multi_addmsg(multi, msg); + + multistate(data, CURLM_STATE_MSGSENT); + } } while(rc == CURLM_CALL_MULTI_PERFORM); data->result = result; - if(CURLM_STATE_COMPLETED == data->mstate) { - /* now fill in the Curl_message with this info */ - msg = &data->msg; - - msg->extmsg.msg = CURLMSG_DONE; - msg->extmsg.easy_handle = data; - msg->extmsg.data.result = result; - - rc = multi_addmsg(multi, msg); - - multistate(data, CURLM_STATE_MSGSENT); - } return rc; }