mirror of
https://github.com/Drop-OSS/drop-app.git
synced 2025-11-13 16:22:43 +10:00
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:
@ -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);
|
||||||
|
|||||||
@ -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()))
|
||||||
|
|||||||
@ -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,
|
||||||
));
|
));
|
||||||
|
|||||||
Reference in New Issue
Block a user