From a194c0aa6e235e25613f185372d83661a6e8fd08 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Wed, 1 May 2024 14:34:54 -0700 Subject: [PATCH] Compile and instantiate wasm modules on a background thread (#11270) Release Notes: - Fixed a hang that could occur when loading some extensions, by loading extensions on a background thread. --- crates/extension/src/wasm_host.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/crates/extension/src/wasm_host.rs b/crates/extension/src/wasm_host.rs index 51b306f1ff..c0e9ec753a 100644 --- a/crates/extension/src/wasm_host.rs +++ b/crates/extension/src/wasm_host.rs @@ -106,9 +106,9 @@ impl WasmHost { wasm_bytes: Vec, manifest: Arc, executor: BackgroundExecutor, - ) -> impl 'static + Future> { + ) -> Task> { let this = self.clone(); - async move { + executor.clone().spawn(async move { let zed_api_version = parse_wasm_extension_version(&manifest.id, &wasm_bytes)?; let component = Component::from_binary(&this.engine, &wasm_bytes) @@ -147,7 +147,7 @@ impl WasmHost { tx, zed_api_version, }) - } + }) } async fn build_wasi_ctx(&self, manifest: &Arc) -> Result {