summaryrefslogtreecommitdiff
path: root/cli/ops.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/ops.rs')
-rw-r--r--cli/ops.rs16
1 files changed, 12 insertions, 4 deletions
diff --git a/cli/ops.rs b/cli/ops.rs
index 0d752e226..5e2a62439 100644
--- a/cli/ops.rs
+++ b/cli/ops.rs
@@ -19,6 +19,7 @@ use crate::state::ThreadSafeState;
use crate::tokio_util;
use crate::tokio_write;
use crate::version;
+use crate::worker::root_specifier_to_url;
use crate::worker::Worker;
use deno::deno_buf;
use deno::js_check;
@@ -1878,9 +1879,14 @@ fn op_create_worker(
Worker::new(name, startup_data::deno_isolate_init(), child_state);
js_check(worker.execute("denoMain()"));
js_check(worker.execute("workerMain()"));
- let result = worker.execute_mod(specifier, false);
+
+ let specifier_url =
+ root_specifier_to_url(specifier).map_err(DenoError::from)?;
+
+ // TODO(ry) Use execute_mod_async here.
+ let result = worker.execute_mod(&specifier_url, false);
match result {
- Ok(_) => {
+ Ok(worker) => {
let mut workers_tl = parent_state.workers.lock().unwrap();
workers_tl.insert(rid, worker.shared());
let builder = &mut FlatBufferBuilder::new();
@@ -1898,8 +1904,10 @@ fn op_create_worker(
},
))
}
- Err(errors::RustOrJsError::Js(_)) => Err(errors::worker_init_failed()),
- Err(errors::RustOrJsError::Rust(err)) => Err(err),
+ Err((errors::RustOrJsError::Js(_), _worker)) => {
+ Err(errors::worker_init_failed())
+ }
+ Err((errors::RustOrJsError::Rust(err), _worker)) => Err(err),
}
}()))
}