2025-09-05 14:59:21 +08:00

71 lines
1.6 KiB
JavaScript

import { EventEmitter } from "node:events";
import { notImplemented } from "../_internal/utils.mjs";
export const SCHED_NONE = 1;
export const SCHED_RR = 2;
export const isMaster = true;
export const isPrimary = true;
export const isWorker = false;
export const schedulingPolicy = SCHED_RR;
export const settings = {};
export const workers = {};
export const fork = /* @__PURE__ */ notImplemented("cluster.fork");
export const disconnect = /* @__PURE__ */ notImplemented("cluster.disconnect");
export const setupPrimary = /* @__PURE__ */ notImplemented("cluster.setupPrimary");
export const setupMaster = /* @__PURE__ */ notImplemented("cluster.setupMaster");
// Make ESM coverage happy
export const _events = [];
export const _eventsCount = 0;
export const _maxListeners = 0;
export class Worker extends EventEmitter {
_connected = false;
id = 0;
get process() {
return globalThis.process;
}
get exitedAfterDisconnect() {
return this._connected;
}
isConnected() {
return this._connected;
}
isDead() {
return true;
}
send(message, sendHandle, options, callback) {
return false;
}
kill(signal) {
this._connected = false;
}
destroy(signal) {
this._connected = false;
}
disconnect() {
this._connected = false;
}
}
class _Cluster extends EventEmitter {
Worker = Worker;
isMaster = isMaster;
isPrimary = isPrimary;
isWorker = isWorker;
SCHED_NONE = SCHED_NONE;
SCHED_RR = SCHED_RR;
schedulingPolicy = SCHED_RR;
settings = settings;
workers = workers;
setupPrimary() {
return setupPrimary();
}
setupMaster() {
return setupPrimary();
}
disconnect() {
return disconnect();
}
fork() {
return fork();
}
}
export default new _Cluster();