mirror of
https://github.com/denoland/deno.git
synced 2025-01-11 08:33:43 -05:00
chore(runtime): internalize pipe fd for ext/node (#21570)
Signed-off-by: Divy Srivastava <dj.srivastava23@gmail.com>
This commit is contained in:
parent
491f8e9731
commit
d3ef599c8f
2 changed files with 12 additions and 9 deletions
|
@ -6,6 +6,7 @@
|
|||
// TODO(petamoriken): enable prefer-primordials for node polyfills
|
||||
// deno-lint-ignore-file prefer-primordials
|
||||
|
||||
import { core, internals } from "ext:core/mod.js";
|
||||
import { assert } from "ext:deno_node/_util/asserts.ts";
|
||||
import { EventEmitter } from "node:events";
|
||||
import { os } from "ext:deno_node/internal_binding/constants.ts";
|
||||
|
@ -43,6 +44,7 @@ import {
|
|||
import { kEmptyObject } from "ext:deno_node/internal/util.mjs";
|
||||
import { getValidatedPath } from "ext:deno_node/internal/fs/utils.mjs";
|
||||
import process from "node:process";
|
||||
|
||||
const core = globalThis.__bootstrap.core;
|
||||
const {
|
||||
op_node_ipc_read,
|
||||
|
@ -258,8 +260,9 @@ export class ChildProcess extends EventEmitter {
|
|||
}
|
||||
}
|
||||
|
||||
if (typeof this.#process._pipeFd == "number") {
|
||||
setupChannel(this, this.#process._pipeFd);
|
||||
const pipeFd = internals.getPipeFd(this.#process);
|
||||
if (typeof pipeFd == "number") {
|
||||
setupChannel(this, pipeFd);
|
||||
}
|
||||
|
||||
(async () => {
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license.
|
||||
|
||||
import { core, primordials } from "ext:core/mod.js";
|
||||
import { core, internals, primordials } from "ext:core/mod.js";
|
||||
const ops = core.ops;
|
||||
const {
|
||||
ArrayPrototypeMap,
|
||||
|
@ -204,16 +204,16 @@ function collectOutput(readableStream) {
|
|||
return readableStreamCollectIntoUint8Array(readableStream);
|
||||
}
|
||||
|
||||
const _pipeFd = Symbol("[[pipeFd]]");
|
||||
|
||||
internals.getPipeFd = (process) => process[_pipeFd];
|
||||
|
||||
class ChildProcess {
|
||||
#rid;
|
||||
#waitPromise;
|
||||
#waitComplete = false;
|
||||
|
||||
#pipeFd;
|
||||
// internal, used by ext/node
|
||||
get _pipeFd() {
|
||||
return this.#pipeFd;
|
||||
}
|
||||
[_pipeFd];
|
||||
|
||||
#pid;
|
||||
get pid() {
|
||||
|
@ -259,7 +259,7 @@ class ChildProcess {
|
|||
|
||||
this.#rid = rid;
|
||||
this.#pid = pid;
|
||||
this.#pipeFd = pipeFd;
|
||||
this[_pipeFd] = pipeFd;
|
||||
|
||||
if (stdinRid !== null) {
|
||||
this.#stdin = writableStreamForRid(stdinRid);
|
||||
|
|
Loading…
Reference in a new issue