From ef5f88516a14d57d473764a065ebbe8cb130a0ac Mon Sep 17 00:00:00 2001 From: Klesti Selimaj Date: Fri, 24 Jul 2026 17:47:06 +0200 Subject: [PATCH] Fix spawning --- src/engine/engine.rs | 10 +++------- src/engine/main.rs | 9 +++++++-- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/engine/engine.rs b/src/engine/engine.rs index 7506360..3581add 100644 --- a/src/engine/engine.rs +++ b/src/engine/engine.rs @@ -1,6 +1,6 @@ use std::sync::Arc; -use tokio::sync::Mutex; +use tokio::{sync::Mutex, task::JoinHandle}; use crate::{config::Config, terminal::TerminalServer}; @@ -20,20 +20,16 @@ impl Engine { })) } - pub async fn spawn_terminal_server(&self) -> tokio::io::Result<()> { + pub async fn spawn_terminal_server(&self) -> JoinHandle> { let terminal_server = self.terminal_server.clone(); tokio::spawn(async move { terminal_server.run().await }) - .await - .expect("Failed to spawn terminal server") } - pub async fn spawn_broadcaster(&self) -> tokio::io::Result<()> { + pub async fn spawn_broadcaster(&self) -> JoinHandle> { let s = self.clone(); tokio::spawn(async move { s.run_broadcaster().await }) - .await - .expect("Failed to spawn broadcaster") } pub async fn run_broadcaster(&self) -> tokio::io::Result<()> { diff --git a/src/engine/main.rs b/src/engine/main.rs index 0caae94..2e7cd52 100644 --- a/src/engine/main.rs +++ b/src/engine/main.rs @@ -7,11 +7,16 @@ pub mod terminal; async fn main() -> tokio::io::Result<()> { let engine = engine::Engine::new().await?; - engine.spawn_terminal_server().await?; + let terminal_server = engine.spawn_terminal_server().await; - engine.spawn_broadcaster().await?; + let broadcaster = engine.spawn_broadcaster().await; engine.run_engine().await?; + let (terminal_server, broadcaster) = tokio::join!(terminal_server, broadcaster); + + terminal_server??; + broadcaster??; + Ok(()) }