fix(game downloads): Accidentally was attempting to lock onto something that was already in scope

Signed-off-by: quexeky <git@quexeky.dev>
This commit is contained in:
quexeky
2025-01-05 18:43:29 +11:00
parent 6ea4cf2797
commit 9e82a0b3c3
3 changed files with 11 additions and 2 deletions

View File

@ -238,6 +238,7 @@ impl DownloadManagerBuilder {
sender.send(DownloadManagerSignal::Error(e)).unwrap(); sender.send(DownloadManagerSignal::Error(e)).unwrap();
}, },
} }
sender.send(DownloadManagerSignal::UpdateUIQueue).unwrap();
})); }));
self.set_status(DownloadManagerStatus::Downloading); self.set_status(DownloadManagerStatus::Downloading);

View File

@ -249,6 +249,7 @@ impl GameDownloadAgent {
let base_url = DB.fetch_base_url(); let base_url = DB.fetch_base_url();
let contexts = self.contexts.lock().unwrap(); let contexts = self.contexts.lock().unwrap();
pool.scope(|scope| { pool.scope(|scope| {
let client = &reqwest::blocking::Client::new(); let client = &reqwest::blocking::Client::new();
@ -288,6 +289,7 @@ impl GameDownloadAgent {
let newly_completed = completed_indexes.to_owned(); let newly_completed = completed_indexes.to_owned();
let completed_lock_len = { let completed_lock_len = {
let mut completed_contexts_lock = self.completed_contexts.lock().unwrap(); let mut completed_contexts_lock = self.completed_contexts.lock().unwrap();
for (item, _) in newly_completed.iter() { for (item, _) in newly_completed.iter() {
@ -297,8 +299,10 @@ impl GameDownloadAgent {
completed_contexts_lock.len() completed_contexts_lock.len()
}; };
info!("Got newly completed");
// If we're not out of contexts, we're not done, so we don't fire completed // If we're not out of contexts, we're not done, so we don't fire completed
if completed_lock_len != self.contexts.lock().unwrap().len() { if completed_lock_len != contexts.len() {
info!("da for {} exited without completing", self.id.clone()); info!("da for {} exited without completing", self.id.clone());
self.stored_manifest self.stored_manifest
.set_completed_contexts(&self.completed_contexts.lock().unwrap().clone().into()); .set_completed_contexts(&self.completed_contexts.lock().unwrap().clone().into());
@ -308,6 +312,9 @@ impl GameDownloadAgent {
return Ok(false); return Ok(false);
} }
info!("Sending completed signal");
// We've completed // We've completed
self.sender self.sender
.send(DownloadManagerSignal::Completed(self.metadata())) .send(DownloadManagerSignal::Completed(self.metadata()))

View File

@ -6,7 +6,7 @@ use crate::download_manager::progress_object::ProgressHandle;
use crate::games::downloads::manifest::DropDownloadContext; use crate::games::downloads::manifest::DropDownloadContext;
use crate::remote::RemoteAccessError; use crate::remote::RemoteAccessError;
use crate::DB; use crate::DB;
use log::{info, warn}; use log::{error, info, warn};
use md5::{Context, Digest}; use md5::{Context, Digest};
use reqwest::blocking::{Client, Request, RequestBuilder, Response}; use reqwest::blocking::{Client, Request, RequestBuilder, Response};
@ -153,6 +153,7 @@ pub fn download_game_chunk(
let content_length = response.content_length(); let content_length = response.content_length();
if content_length.is_none() { if content_length.is_none() {
error!("Recieved 0 length content from server");
return Err(ApplicationDownloadError::Communication( return Err(ApplicationDownloadError::Communication(
RemoteAccessError::InvalidResponse, RemoteAccessError::InvalidResponse,
)); ));