mirror of
https://github.com/nimbold/Firelink.git
synced 2026-08-28 19:47:26 +00:00
fix: resolve E0521 by cloning specific fields instead of borrowing AppState
This commit is contained in:
@@ -2402,15 +2402,17 @@ async fn resume_download(
|
|||||||
crate::ipc::DownloadStateEvent::new(&id, crate::ipc::DownloadStatus::Queued),
|
crate::ipc::DownloadStateEvent::new(&id, crate::ipc::DownloadStatus::Queued),
|
||||||
);
|
);
|
||||||
|
|
||||||
let app_state = state.inner().clone();
|
let queue_manager = state.queue_manager.clone();
|
||||||
|
let aria2_port = state.aria2_port;
|
||||||
|
let aria2_secret = state.aria2_secret.clone();
|
||||||
let id_clone = id.clone();
|
let id_clone = id.clone();
|
||||||
let gid_clone = gid.clone();
|
let gid_clone = gid.clone();
|
||||||
|
|
||||||
tauri::async_runtime::spawn(async move {
|
tauri::async_runtime::spawn(async move {
|
||||||
let acquired = app_state.queue_manager.ensure_aria2_permit(&id_clone).await;
|
let acquired = queue_manager.ensure_aria2_permit(&id_clone).await;
|
||||||
let result = match rpc_call(
|
let result = match rpc_call(
|
||||||
app_state.aria2_port,
|
aria2_port,
|
||||||
&app_state.aria2_secret,
|
&aria2_secret,
|
||||||
"aria2.unpause",
|
"aria2.unpause",
|
||||||
serde_json::json!([gid_clone]),
|
serde_json::json!([gid_clone]),
|
||||||
)
|
)
|
||||||
@@ -2419,7 +2421,7 @@ async fn resume_download(
|
|||||||
Ok(result) => result,
|
Ok(result) => result,
|
||||||
Err(error) => {
|
Err(error) => {
|
||||||
if acquired {
|
if acquired {
|
||||||
app_state.queue_manager.release_permit(&id_clone).await;
|
queue_manager.release_permit(&id_clone).await;
|
||||||
}
|
}
|
||||||
log::error!("failed to resume aria2 gid {}: {}", gid_clone, error);
|
log::error!("failed to resume aria2 gid {}: {}", gid_clone, error);
|
||||||
return;
|
return;
|
||||||
@@ -2427,7 +2429,7 @@ async fn resume_download(
|
|||||||
};
|
};
|
||||||
if let Err(error) = ensure_aria2_gid_result("unpause", &gid_clone, &result) {
|
if let Err(error) = ensure_aria2_gid_result("unpause", &gid_clone, &result) {
|
||||||
if acquired {
|
if acquired {
|
||||||
app_state.queue_manager.release_permit(&id_clone).await;
|
queue_manager.release_permit(&id_clone).await;
|
||||||
}
|
}
|
||||||
log::error!("failed to resume aria2 gid {}: {}", gid_clone, error);
|
log::error!("failed to resume aria2 gid {}: {}", gid_clone, error);
|
||||||
return;
|
return;
|
||||||
|
|||||||
Reference in New Issue
Block a user