summaryrefslogtreecommitdiff
path: root/cli/compilers/wasm.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/compilers/wasm.rs')
-rw-r--r--cli/compilers/wasm.rs11
1 files changed, 6 insertions, 5 deletions
diff --git a/cli/compilers/wasm.rs b/cli/compilers/wasm.rs
index d81138482..4e8ba78f3 100644
--- a/cli/compilers/wasm.rs
+++ b/cli/compilers/wasm.rs
@@ -6,8 +6,8 @@ use crate::global_state::GlobalState;
use crate::startup_data;
use crate::state::*;
use crate::tokio_util;
+use crate::web_worker::WebWorkerHandle;
use crate::worker::WorkerEvent;
-use crate::worker::WorkerHandle;
use deno_core::Buf;
use deno_core::ErrBox;
use deno_core::ModuleSpecifier;
@@ -118,7 +118,7 @@ async fn execute_in_thread(
req: Buf,
) -> Result<Buf, ErrBox> {
let (handle_sender, handle_receiver) =
- std::sync::mpsc::sync_channel::<Result<WorkerHandle, ErrBox>>(1);
+ std::sync::mpsc::sync_channel::<Result<WebWorkerHandle, ErrBox>>(1);
let builder =
std::thread::Builder::new().name("deno-wasm-compiler".to_string());
let join_handle = builder.spawn(move || {
@@ -127,15 +127,16 @@ async fn execute_in_thread(
drop(handle_sender);
tokio_util::run_basic(worker).expect("Panic in event loop");
})?;
- let mut handle = handle_receiver.recv().unwrap()?;
- handle.post_message(req).await?;
+ let handle = handle_receiver.recv().unwrap()?;
+ handle.post_message(req)?;
let event = handle.get_event().await.expect("Compiler didn't respond");
let buf = match event {
WorkerEvent::Message(buf) => Ok(buf),
WorkerEvent::Error(error) => Err(error),
+ WorkerEvent::TerminalError(error) => Err(error),
}?;
// Shutdown worker and wait for thread to finish
- handle.sender.close_channel();
+ handle.terminate();
join_handle.join().unwrap();
Ok(buf)
}