From 4c77bd1ba1a7838ca745806bcd0a6d2d0c65b49e Mon Sep 17 00:00:00 2001 From: OMGeeky Date: Mon, 15 Apr 2024 18:32:39 +0200 Subject: [PATCH] fix deadlock when quickly reading stuff async calling sync calling async is a fucking pain --- gdriver-client/src/filesystem/macros.rs | 3 +-- gdriver-client/src/main.rs | 5 ++++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/gdriver-client/src/filesystem/macros.rs b/gdriver-client/src/filesystem/macros.rs index b8311f6..0db978b 100644 --- a/gdriver-client/src/filesystem/macros.rs +++ b/gdriver-client/src/filesystem/macros.rs @@ -38,8 +38,7 @@ mod send_requests { macro_rules! send_request { ($func:expr ) => {{ let handle = ::tokio::runtime::Handle::current(); - let _ = handle.enter(); - futures::executor::block_on($func) + handle.block_on($func) }}; } #[macro_export] diff --git a/gdriver-client/src/main.rs b/gdriver-client/src/main.rs index 9b53bc7..3954d6f 100644 --- a/gdriver-client/src/main.rs +++ b/gdriver-client/src/main.rs @@ -55,7 +55,10 @@ async fn mount( let _ = end_program_signal_awaiter(sender, session_ender).await; }); debug!("Mounting fuse filesystem"); - let _ = session.run(); + tokio::task::spawn_blocking(move || { + let _ = session.run(); + }) + .await?; debug!("Stopped with mounting"); // Ok(session_ender) Ok(end_program_signal_handle)