diff options
Diffstat (limited to 'cli/ops.rs')
-rw-r--r-- | cli/ops.rs | 16 |
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), } }())) } |