From 3af7d34ef3bb54597cb8f6b165e9d18e70d40464 Mon Sep 17 00:00:00 2001 From: Miles Murgaw Date: Tue, 26 Nov 2024 12:14:35 -0500 Subject: [PATCH] Fix: CLI Windows Write `exe` Errors (#3239) * fix: windows write exec errors * revision: gate kill_all behind windows --- packages/cli/src/serve/mod.rs | 10 ++++++++++ packages/cli/src/serve/runner.rs | 4 ++++ 2 files changed, 14 insertions(+) diff --git a/packages/cli/src/serve/mod.rs b/packages/cli/src/serve/mod.rs index 3dbd6d66d..ccf598eda 100644 --- a/packages/cli/src/serve/mod.rs +++ b/packages/cli/src/serve/mod.rs @@ -107,6 +107,11 @@ pub(crate) async fn serve_all(mut args: ServeArgs) -> Result<()> { } else if runner.should_full_rebuild { tracing::info!(dx_src = ?TraceSrc::Dev, "Full rebuild: {}", file); + // Kill any running executables on Windows + if cfg!(windows) { + runner.kill_all(); + } + // We're going to kick off a new build, interrupting the current build if it's ongoing builder.rebuild(args.build_arguments.clone()); @@ -215,6 +220,11 @@ pub(crate) async fn serve_all(mut args: ServeArgs) -> Result<()> { // `Hotreloading:` to keep the alignment during long edit sessions tracing::info!("Full rebuild: triggered manually"); + // Kill any running executables on Windows + if cfg!(windows) { + runner.kill_all(); + } + builder.rebuild(args.build_arguments.clone()); runner.file_map.force_rebuild(); devserver.start_build().await diff --git a/packages/cli/src/serve/runner.rs b/packages/cli/src/serve/runner.rs index 33d1bee13..cd00237ac 100644 --- a/packages/cli/src/serve/runner.rs +++ b/packages/cli/src/serve/runner.rs @@ -141,6 +141,10 @@ impl AppRunner { self.running.remove(&platform); } + pub(crate) fn kill_all(&mut self) { + self.running.clear(); + } + /// Open an existing app bundle, if it exists pub(crate) async fn open_existing(&self, devserver: &WebServer) { if let Some(address) = devserver.server_address() {