Changeset 7532


Ignore:
Timestamp:
Dec 29, 2008, 7:02:12 PM (12 years ago)
Author:
charles
Message:

(trunk libT) simplify web.c's remove_finished_tasks() a bit

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/libtransmission/web.c

    r7529 r7532  
    201201remove_finished_tasks( tr_web * g )
    202202{
    203     CURL * easy;
    204 
    205     do
     203    for( ;; )
    206204    {
    207         CURLMsg * msg;
    208         int msgs_left;
    209 
    210         easy = NULL;
    211         while(( msg = curl_multi_info_read( g->multi, &msgs_left ))) {
    212             if( msg->msg == CURLMSG_DONE ) {
    213                 easy = msg->easy_handle;
    214                 break;
    215             }
    216         }
    217 
    218         if( easy ) {
     205        int ignored;
     206        CURLMsg * msg = curl_multi_info_read( g->multi, &ignored );
     207
     208        if( msg == NULL )
     209        {
     210            break;
     211        }
     212        else if( ( msg->msg == CURLMSG_DONE ) && ( msg->easy_handle != NULL ) )
     213        {
     214            CURL * easy = msg->easy_handle;
    219215            long code;
    220216            struct tr_web_task * task;
    221217            curl_easy_getinfo( easy, CURLINFO_PRIVATE, (void*)&task );
    222218            curl_easy_getinfo( easy, CURLINFO_RESPONSE_CODE, &code );
     219            task_finish( task, code );
    223220            curl_multi_remove_handle( g->multi, easy );
    224221            curl_easy_cleanup( easy );
    225             task_finish( task, code );
    226         }
    227     }
    228     while ( easy );
     222        }
     223    }
    229224
    230225    g->prev_running = g->still_running;
Note: See TracChangeset for help on using the changeset viewer.