From 7492fb67bd61a159149a0e3442310458db67ad17 Mon Sep 17 00:00:00 2001 From: Lucas Nogueira Date: Tue, 12 Oct 2021 14:49:45 -0300 Subject: [PATCH] fix: run `connect` on main thread, use tauri async_runtime fixes an overflow issue on Windows --- src/lib.rs | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 51c8eaee..4805b042 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -76,20 +76,19 @@ enum WebSocketMessage { } #[tauri::command] -async fn connect( +fn connect( window: Window, - manager: State<'_, ConnectionManager>, url: String, callback_function: String, config: Option, ) -> Result { - let (ws_stream, _) = connect_async_with_config(url, config.map(Into::into)).await?; - let (write, read) = ws_stream.split(); - let id = rand::random(); - manager.0.lock().await.insert(id, write); + let (ws_stream, _) = tauri::async_runtime::block_on(connect_async_with_config(url, config.map(Into::into)))?; tauri::async_runtime::spawn(async move { + let (write, read) = ws_stream.split(); + let manager = window.state::(); + manager.0.lock().await.insert(id, write); read.for_each(move |message| { let window_ = window.clone(); let callback_function_ = callback_function.clone();