From a60f4f9ec4bd339a35469d63c5cec3dc8197f87c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Kav=C3=ADk?= Date: Mon, 8 Jul 2024 14:30:49 +0200 Subject: [PATCH] fix JS testing decoder --- Cargo.lock | 11 ++++--- src-tauri/Cargo.toml | 1 + src-tauri/src/component_manager.rs | 2 +- src-tauri/src/lib.rs | 30 ++++++++++++------ .../javascript_decoder.wasm | Bin 10108533 -> 10108530 bytes .../javascript_decoder/src/index.js | 2 +- 6 files changed, 31 insertions(+), 15 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e499807..04016b6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1691,6 +1691,7 @@ checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" name = "fastwave" version = "0.1.0" dependencies = [ + "futures", "once_cell", "serde", "serde_json", @@ -1840,12 +1841,13 @@ dependencies = [ [[package]] name = "futures" -version = "0.3.28" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40" +checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" dependencies = [ "futures-channel", "futures-core", + "futures-executor", "futures-io", "futures-sink", "futures-task", @@ -1870,9 +1872,9 @@ checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" [[package]] name = "futures-executor" -version = "0.3.28" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0" +checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" dependencies = [ "futures-core", "futures-task", @@ -1943,6 +1945,7 @@ version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" dependencies = [ + "futures-channel", "futures-core", "futures-io", "futures-macro", diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index f0b386c..8884690 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -24,6 +24,7 @@ tauri = { version = "=2.0.0-beta.22", features = ["macos-private-api", "linux-ip tauri-plugin-window-state = "=2.0.0-beta.9" tauri-plugin-dialog = "=2.0.0-beta.9" once_cell = "1.19.0" +futures = "0.3.30" # wasmtime = "22.0.0" # wasmtime-wasi = "22.0.0" diff --git a/src-tauri/src/component_manager.rs b/src-tauri/src/component_manager.rs index 8d92458..69faa11 100644 --- a/src-tauri/src/component_manager.rs +++ b/src-tauri/src/component_manager.rs @@ -79,7 +79,7 @@ pub async fn remove_all_decoders() -> RemovedDecodersCount { // All Release // FW.add_decoders(["../../test_files/components/rust_decoder/rust_decoder.wasm", "../../test_files/components/javascript_decoder/javascript_decoder.wasm", "../../test_files/components/python_decoder/python_decoder.wasm"]) pub async fn add_decoders(decoder_paths: Vec) -> AddedDecodersCount { - println!("decoders in Tauri: {decoder_paths:#?}"); + println!("Decoders: {decoder_paths:#?}"); println!("Current dir: {:#?}", std::env::current_dir().unwrap()); let mut added_decoders_count = 0; diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index 9a2cb18..0d2df5b 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -87,15 +87,27 @@ async fn load_signal_and_get_timeline( var_format, |mut value: String| { Box::pin(async { - let decoders = component_manager::DECODERS.read().await; - let mut store_lock = component_manager::STORE.lock().await; - let mut store = store_lock.as_context_mut(); - for decoder in decoders.iter() { - value = decoder - .component_decoder_decoder() - .call_format_signal_value(&mut store, &value) - .unwrap() - } + // We need to spawn a (non-runtime-specific?) blocking task before calling component methods to prevent this error: + // "Cannot start a runtime from within a runtime. This happens because a function (like `block_on`) attempted to block the current thread while the thread is being used to drive asynchronous tasks." + // @TODO Workaround? Is it a problem only for non-Rust components? Is it needed only when there is a problem in the component (e.g. "`Err` value: wasm trap: cannot enter component instance"?) + // let value = std::thread::spawn(move || { + // futures::executor::block_on(async move { + let decoders = component_manager::DECODERS.read().await; + let mut store_lock = component_manager::STORE.lock().await; + let mut store = store_lock.as_context_mut(); + + for decoder in decoders.iter() { + value = decoder + .component_decoder_decoder() + .call_format_signal_value(&mut store, &value) + // @TODO Resolve panic when running non-Rust components: + // `Err` value: wasm trap: cannot enter component instance + // https://github.com/bytecodealliance/wasmtime/issues/8670 ? + .unwrap() + } + // value + // }) + // }).join().unwrap(); value }) }, diff --git a/test_files/components/javascript_decoder/javascript_decoder.wasm b/test_files/components/javascript_decoder/javascript_decoder.wasm index 56fc06f3f4eca49d228450247e110baffb392e94..de925088b067b3980182f4cc7dc723daa6f8912c 100644 GIT binary patch delta 6734 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 S|L|+3J`+ZRU+?cscSiu3|4q06 delta 6461 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 J{yWp%5dcxpF<}4z diff --git a/test_files/components/javascript_decoder/src/index.js b/test_files/components/javascript_decoder/src/index.js index 4b33938..add3212 100644 --- a/test_files/components/javascript_decoder/src/index.js +++ b/test_files/components/javascript_decoder/src/index.js @@ -10,7 +10,7 @@ export const decoder = { return name }, formatSignalValue(value) { - value + "!" + return value + "!" } }