From ea8538761b386f49acc72aa420eb166d0432f5d4 Mon Sep 17 00:00:00 2001 From: Meta Vens Date: Sat, 10 Oct 2026 01:58:10 +0200 Subject: [PATCH] Bridge test: run the first process on a blocking thread so the test runtime keeps serving Joining the thread from the test body starved the world mailbox's owner task and hung the test; spawn_blocking leaves the runtime free. Ignored test, verified on Starfire. Co-Authored-By: Claude Opus 5.5 --- crates/ghostlight-dungeon/src/runtime.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/crates/ghostlight-dungeon/src/runtime.rs b/crates/ghostlight-dungeon/src/runtime.rs index 3b6075c..eb96477 100644 --- a/crates/ghostlight-dungeon/src/runtime.rs +++ b/crates/ghostlight-dungeon/src/runtime.rs @@ -3242,7 +3242,7 @@ mod tests { let cookie = fixture.cookie.clone(); let held = held.clone(); let intent = play_intents.into_iter().next().unwrap(); - std::thread::spawn(move || { + tokio::task::spawn_blocking(move || { let process = tokio::runtime::Builder::new_current_thread().enable_all().build().unwrap(); let seen = process.block_on(async { let played = post(&state, &cookie, intent).await; @@ -3263,7 +3263,7 @@ mod tests { process.shutdown_timeout(Duration::from_secs(5)); seen }) - .join() + .await .unwrap() }; assert_eq!(played["receipt"]["state"], "accepted", "typed world.play via the real client: {played}");