(config: HttpConfig, work_rx: Receiver<HttpWork>, event_tx: Sender<HttpEvent>)
| 423 | let (work_tx, work_rx) = mpsc::sync_channel::<HttpWork>(queue_config.request_capacity); |
| 424 | let (event_tx, event_rx) = mpsc::sync_channel::<HttpEvent>(queue_config.event_capacity); |
| 425 | let work_rx = Arc::new(Mutex::new(work_rx)); |
| 426 | let shared_agent = build_agent(&config).ok(); |
| 427 | for worker_index in 0..queue_config.worker_count { |
| 428 | let worker_config = config.clone(); |
| 429 | let worker_rx = Arc::clone(&work_rx); |
| 430 | let worker_event_tx = event_tx.clone(); |
| 431 | let worker_agent = shared_agent.clone(); |
| 432 | thread::Builder::new() |
| 433 | .name(format!("perro-http-{worker_index}")) |
| 434 | .spawn(move || http_worker(worker_config, worker_rx, worker_event_tx, worker_agent)) |
| 435 | .expect("failed to spawn HTTP worker"); |
| 436 | } |
no test coverage detected