Changeset 8134
- Timestamp:
- Apr 5, 2009, 1:00:17 PM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/libtransmission/web.c
r7905 r8134 73 73 tr_session * session; 74 74 struct event timer_event; 75 tr_list * easy_queue; 75 76 tr_list * fds; 76 77 }; … … 215 216 curl_easy_setopt( easy, CURLOPT_ENCODING, "" ); 216 217 217 { 218 if( web->still_running >= MAX_CONCURRENT_TASKS ) { 219 tr_list_append( &web->easy_queue, easy ); 220 dbgmsg( ">> enqueueing a task... size is now %d", tr_list_size( web->easy_queue ) ); 221 } else { 218 222 const CURLMcode mcode = curl_multi_add_handle( web->multi, easy ); 219 223 tr_assert( mcode == CURLM_OK, "curl_multi_add_handle() failed: %d (%s)", mcode, curl_multi_strerror( mcode ) ); … … 323 327 tr_timevalMsec( g->timer_ms, &interval ); 324 328 evtimer_add( &g->timer_event, &interval ); 329 } 330 331 static void 332 add_tasks_from_queue( tr_web * g ) 333 { 334 while( ( g->still_running < MAX_CONCURRENT_TASKS ) 335 && ( tr_list_size( g->easy_queue ) > 0 ) ) 336 { 337 CURL * easy = tr_list_pop_front( &g->easy_queue ); 338 if( easy ) 339 { 340 const CURLMcode rc = curl_multi_add_handle( g->multi, easy ); 341 if( rc != CURLM_OK ) 342 tr_err( "%s", curl_multi_strerror( rc ) ); 343 else { 344 dbgmsg( "pumped the task queue, %d remain", 345 tr_list_size( g->easy_queue ) ); 346 ++g->still_running; 347 } 348 } 349 } 325 350 } 326 351 … … 372 397 373 398 remove_finished_tasks( g ); 399 400 add_tasks_from_queue( g ); 374 401 375 402 if( !g->still_running ) {
Note: See TracChangeset
for help on using the changeset viewer.