diff options
| author | Divy Srivastava <dj.srivastava23@gmail.com> | 2023-12-15 16:20:05 +0530 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-12-15 11:50:05 +0100 |
| commit | 81a6504e670d32bdc5e0a8328c328fdf8e208913 (patch) | |
| tree | 27a90846e42edd1863e45e9792375d7777f10667 /runtime | |
| parent | 62e3f5060ef9cc6a31b3e496dd15548c0abd07e6 (diff) | |
refactor: setup child process pipe in Rust (#21579)
Avoid passing the fd into JS and back into Rust. Instead we setup the
child's end of the pipe directly using a special Rust op.
Diffstat (limited to 'runtime')
| -rw-r--r-- | runtime/js/99_main.js | 3 | ||||
| -rw-r--r-- | runtime/worker.rs | 11 | ||||
| -rw-r--r-- | runtime/worker_bootstrap.rs | 3 |
3 files changed, 11 insertions, 6 deletions
diff --git a/runtime/js/99_main.js b/runtime/js/99_main.js index 5b4b164a2..0469b38bf 100644 --- a/runtime/js/99_main.js +++ b/runtime/js/99_main.js @@ -440,7 +440,6 @@ function bootstrapMainRuntime(runtimeOptions) { 3: inspectFlag, 5: hasNodeModulesDir, 6: maybeBinaryNpmCommandName, - 7: nodeIpcFd, } = runtimeOptions; performance.setTimeOrigin(DateNow()); @@ -546,7 +545,7 @@ function bootstrapMainRuntime(runtimeOptions) { ObjectDefineProperty(globalThis, "Deno", util.readOnly(finalDenoNs)); if (nodeBootstrap) { - nodeBootstrap(hasNodeModulesDir, maybeBinaryNpmCommandName, nodeIpcFd); + nodeBootstrap(hasNodeModulesDir, maybeBinaryNpmCommandName); } } diff --git a/runtime/worker.rs b/runtime/worker.rs index 94b0d9606..549a6cdd6 100644 --- a/runtime/worker.rs +++ b/runtime/worker.rs @@ -487,7 +487,16 @@ impl MainWorker { } pub fn bootstrap(&mut self, options: BootstrapOptions) { - self.js_runtime.op_state().borrow_mut().put(options.clone()); + // Setup bootstrap options for ops. + { + let op_state = self.js_runtime.op_state(); + let mut state = op_state.borrow_mut(); + state.put(options.clone()); + if let Some(node_ipc_fd) = options.node_ipc_fd { + state.put(deno_node::ChildPipeFd(node_ipc_fd)); + } + } + let scope = &mut self.js_runtime.handle_scope(); let args = options.as_v8(scope); let bootstrap_fn = self.bootstrap_fn_global.take().unwrap(); diff --git a/runtime/worker_bootstrap.rs b/runtime/worker_bootstrap.rs index 8674190f3..97d66158b 100644 --- a/runtime/worker_bootstrap.rs +++ b/runtime/worker_bootstrap.rs @@ -117,8 +117,6 @@ struct BootstrapV8<'a>( bool, // maybe_binary_npm_command_name Option<&'a str>, - // node_ipc_fd - i32, ); impl BootstrapOptions { @@ -138,7 +136,6 @@ impl BootstrapOptions { self.enable_testing_features, self.has_node_modules_dir, self.maybe_binary_npm_command_name.as_deref(), - self.node_ipc_fd.unwrap_or(-1), ); bootstrap.serialize(ser).unwrap() |
