1
0
Fork 0
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:
Divy Srivastava 2023-12-30 11:02:30 +05:30 committed by Bartek Iwańczuk
parent 491f8e9731
commit d3ef599c8f
No known key found for this signature in database
GPG key ID: 0C6BCDDC3B3AD750
2 changed files with 12 additions and 9 deletions

View file

@ -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 () => {

View file

@ -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);