From 5bc036a5b28be61ad33c1695b17589b10878d33d Mon Sep 17 00:00:00 2001 From: thewh1teagle <61390950+thewh1teagle@users.noreply.github.com> Date: Sun, 19 Nov 2023 06:35:12 +0200 Subject: [PATCH] tokio mutex --- Cargo.lock | 1 + desktop/src-tauri/Cargo.toml | 1 + desktop/src-tauri/src/main.rs | 11 ++++++----- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index f6e7c7b..c3f7e55 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1623,6 +1623,7 @@ dependencies = [ "enigo", "tauri", "tauri-build", + "tokio", "window-shadows", ] diff --git a/desktop/src-tauri/Cargo.toml b/desktop/src-tauri/Cargo.toml index 9fe3ad2..46725e9 100644 --- a/desktop/src-tauri/Cargo.toml +++ b/desktop/src-tauri/Cargo.toml @@ -15,6 +15,7 @@ tauri-build = { version = "1.4", features = [] } [dependencies] tauri = { version = "1.4", features = ["shell-open"] } enigo = { version = "0.1.3" } +tokio = "1.34.0" [target.'cfg(any(windows, target_os = "macos"))'.dependencies] window-shadows = "0.2.2" diff --git a/desktop/src-tauri/src/main.rs b/desktop/src-tauri/src/main.rs index 2be0ced..6db6035 100644 --- a/desktop/src-tauri/src/main.rs +++ b/desktop/src-tauri/src/main.rs @@ -6,15 +6,15 @@ use window_shadows::set_shadow; use tauri::Manager; use enigo::*; -use std::sync::{Arc,Mutex}; use tauri::State; +use tokio::sync::Mutex; -struct Controller(Arc>); +struct Controller(Mutex); #[tauri::command] -fn press(controller: State<'_, Controller>, key: &str) { - let mut controller = (&controller.0).lock().unwrap(); +async fn press(controller: State<'_, Controller>, key: &str) -> Result<(), String> { + let mut controller = (&controller.0).lock().await; match key { "VOL_UP" => { controller.key_down(Key::VolumeUp); @@ -36,6 +36,7 @@ fn press(controller: State<'_, Controller>, key: &str) { } _ => {} } + Ok(()) } @@ -51,7 +52,7 @@ fn main() { Ok(()) }) - .manage(Controller(Arc::new(Mutex::new(controller)))) + .manage(Controller(Mutex::new(controller))) .invoke_handler(tauri::generate_handler![press]) .run(tauri::generate_context!()) .expect("error while running tauri application");