From 653eb07444068c99b408d3c61c043dde19736459 Mon Sep 17 00:00:00 2001 From: Aether Date: Mon, 23 Feb 2026 21:21:28 +0000 Subject: [PATCH] Fix Tokio runtime error - use std::thread instead of tokio::spawn for EventBus --- src-tauri/src/events.rs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src-tauri/src/events.rs b/src-tauri/src/events.rs index 9251719..e62714a 100644 --- a/src-tauri/src/events.rs +++ b/src-tauri/src/events.rs @@ -2,7 +2,7 @@ use std::collections::HashMap; use std::sync::{Arc, Mutex}; use serde_json::Value; use tauri::{AppHandle, Manager}; -use tokio::sync::mpsc; +use std::sync::mpsc as std_mpsc; use tracing::{debug, info}; use uuid::Uuid; @@ -10,7 +10,7 @@ pub type EventHandler = Box; pub struct EventBus { subscribers: Arc>>>, - sender: mpsc::UnboundedSender, + sender: std_mpsc::Sender, } pub type SubscriptionId = String; @@ -25,13 +25,13 @@ pub struct Event { impl EventBus { pub fn new() -> Self { - let (sender, mut receiver) = mpsc::unbounded_channel::(); + let (sender, receiver) = std_mpsc::channel::(); let subscribers: Arc>>> = Arc::new(Mutex::new(HashMap::new())); let subs_clone = subscribers.clone(); - // Event dispatch loop - tokio::spawn(async move { - while let Some(event) = receiver.recv().await { + // Event dispatch loop (using std::thread instead of tokio::spawn) + std::thread::spawn(move || { + while let Ok(event) = receiver.recv() { let subs = subs_clone.lock().unwrap(); if let Some(handlers) = subs.get(&event.event_type) { for (_, handler) in handlers.iter() {