From eff510da18781e7d0e489ba1eb442a58780376ee Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Mon, 29 Dec 2008 19:02:12 +0000 Subject: [PATCH] (trunk libT) simplify web.c's remove_finished_tasks() a bit --- libtransmission/web.c | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/libtransmission/web.c b/libtransmission/web.c index 725906d78..b03929abc 100644 --- a/libtransmission/web.c +++ b/libtransmission/web.c @@ -200,32 +200,27 @@ task_finish( struct tr_web_task * task, long response_code ) static void remove_finished_tasks( tr_web * g ) { - CURL * easy; - - do + for( ;; ) { - CURLMsg * msg; - int msgs_left; + int ignored; + CURLMsg * msg = curl_multi_info_read( g->multi, &ignored ); - easy = NULL; - while(( msg = curl_multi_info_read( g->multi, &msgs_left ))) { - if( msg->msg == CURLMSG_DONE ) { - easy = msg->easy_handle; - break; - } + if( msg == NULL ) + { + break; } - - if( easy ) { + else if( ( msg->msg == CURLMSG_DONE ) && ( msg->easy_handle != NULL ) ) + { + CURL * easy = msg->easy_handle; long code; struct tr_web_task * task; curl_easy_getinfo( easy, CURLINFO_PRIVATE, (void*)&task ); curl_easy_getinfo( easy, CURLINFO_RESPONSE_CODE, &code ); + task_finish( task, code ); curl_multi_remove_handle( g->multi, easy ); curl_easy_cleanup( easy ); - task_finish( task, code ); } } - while ( easy ); g->prev_running = g->still_running; }