summaryrefslogtreecommitdiff
path: root/cli/compilers/ts.rs
diff options
context:
space:
mode:
authorBartek IwaƄczuk <biwanczuk@gmail.com>2020-04-10 00:15:17 +0200
committerGitHub <noreply@github.com>2020-04-10 00:15:17 +0200
commitbe71885628c3820cc4e62d229326de16a6830fec (patch)
tree664bac497658757a77b3d96cc71a1155613b20b1 /cli/compilers/ts.rs
parentac215a24613636b6e84b37a86dc4711dfaa4f2cc (diff)
implement Worker.terminate() and self.close() (#4684)
Diffstat (limited to 'cli/compilers/ts.rs')
-rw-r--r--cli/compilers/ts.rs11
1 files changed, 6 insertions, 5 deletions
diff --git a/cli/compilers/ts.rs b/cli/compilers/ts.rs
index 641f16bca..c78d7ef57 100644
--- a/cli/compilers/ts.rs
+++ b/cli/compilers/ts.rs
@@ -16,8 +16,8 @@ use crate::startup_data;
use crate::state::*;
use crate::tokio_util;
use crate::version;
+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;
@@ -609,7 +609,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-ts-compiler".to_string());
let join_handle = builder.spawn(move || {
@@ -618,15 +618,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)
}