aquatic_ws: request_worker: improve channel reading logic

This commit is contained in:
Joakim Frostegård 2020-05-08 02:07:03 +02:00
parent a39c7a5950
commit 982f3c8959

View file

@ -24,37 +24,27 @@ pub fn run_request_worker(
let mut opt_torrent_map_guard: Option<MutexGuard<TorrentMap>> = None; let mut opt_torrent_map_guard: Option<MutexGuard<TorrentMap>> = None;
for i in 0..1000 { for i in 0..1000 {
if i == 0 { let opt_in_message = if i == 0 {
if let Ok((meta, in_message)) = in_message_receiver.recv(){ in_message_receiver.recv().ok()
match in_message {
InMessage::AnnounceRequest(r) => {
announce_requests.push((meta, r));
},
InMessage::ScrapeRequest(r) => {
scrape_requests.push((meta, r));
},
}
}
} else { } else {
let res_in_message = in_message_receiver.recv_timeout(timeout); in_message_receiver.recv_timeout(timeout).ok()
};
if let Ok((meta, in_message)) = res_in_message { match opt_in_message {
match in_message { Some((meta, InMessage::AnnounceRequest(r))) => {
InMessage::AnnounceRequest(r) => {
announce_requests.push((meta, r)); announce_requests.push((meta, r));
}, },
InMessage::ScrapeRequest(r) => { Some((meta, InMessage::ScrapeRequest(r))) => {
scrape_requests.push((meta, r)); scrape_requests.push((meta, r));
}, },
} None => {
} else {
if let Some(torrent_guard) = state.torrents.try_lock(){ if let Some(torrent_guard) = state.torrents.try_lock(){
opt_torrent_map_guard = Some(torrent_guard); opt_torrent_map_guard = Some(torrent_guard);
break break
} }
} }
}; }
} }
let mut torrent_map_guard = opt_torrent_map_guard let mut torrent_map_guard = opt_torrent_map_guard