diff --git a/crates/lanspread-tauri-deno-ts/src-tauri/src/lib.rs b/crates/lanspread-tauri-deno-ts/src-tauri/src/lib.rs index 6de5c20..fa2d3da 100644 --- a/crates/lanspread-tauri-deno-ts/src-tauri/src/lib.rs +++ b/crates/lanspread-tauri-deno-ts/src-tauri/src/lib.rs @@ -11,7 +11,7 @@ use lanspread_db::db::{Game, GameDB}; use lanspread_mdns::{LANSPREAD_INSTANCE_NAME, LANSPREAD_SERVICE_TYPE, discover_service}; use tauri::{AppHandle, Emitter as _, Manager}; use tauri_plugin_shell::{ShellExt, process::Command}; -use tokio::sync::{Mutex, RwLock, mpsc::UnboundedSender}; +use tokio::sync::{RwLock, mpsc::UnboundedSender}; // Learn more about Tauri commands at https://tauri.app/develop/calling-rust/ @@ -19,7 +19,7 @@ struct LanSpreadState { server_addr: RwLock>, client_ctrl: UnboundedSender, games: Arc>, - games_in_download: Arc>>, + games_in_download: Arc>>, games_folder: Arc>, } @@ -35,7 +35,7 @@ fn request_games(state: tauri::State) { #[tauri::command] fn install_game(id: String, state: tauri::State) -> bool { let already_in_download = tauri::async_runtime::block_on(async { - if state.inner().games_in_download.lock().await.contains(&id) { + if state.inner().games_in_download.read().await.contains(&id) { log::warn!("Game is already downloading: {id}"); return true; } @@ -356,7 +356,7 @@ pub fn run() { server_addr: RwLock::new(None), client_ctrl: tx_client_control, games: Arc::new(RwLock::new(GameDB::empty())), - games_in_download: Arc::new(Mutex::new(HashSet::new())), + games_in_download: Arc::new(RwLock::new(HashSet::new())), games_folder: Arc::new(RwLock::new(String::new())), }; @@ -416,7 +416,7 @@ pub fn run() { .state::() .inner() .games_in_download - .lock() + .write() .await .insert(id.clone()); @@ -434,7 +434,7 @@ pub fn run() { .state::() .inner() .games_in_download - .lock() + .write() .await .remove(&id.clone()); @@ -467,7 +467,7 @@ pub fn run() { .state::() .inner() .games_in_download - .lock() + .write() .await .remove(&id.clone()); },