mirror of
https://github.com/YGGverse/aquatic.git
synced 2026-04-02 18:55:32 +00:00
aquatic_ws: request_worker: improve channel reading logic
This commit is contained in:
parent
a39c7a5950
commit
982f3c8959
1 changed files with 13 additions and 23 deletions
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue