Files
bun.sh/test/js/node/process/process-signal-handler.fixture.js
Dylan Conway 5c8726d602 process signal events (#3569)
* signal events

* simple tests

* ignore SIGSTOP

* better tests

* use `EventEmitter`

* use `Bun__getDefaultGlobal`

* progress

* don't use 'Bun__getDefaultGlobal`

* fix tests

* remove signals from map

* update tests

* don't overwrite event emitter methods

* avoid two lookups

* use `std::once`

* releaseEarly()

* Remove signal handler after use

* Update call-raise.js

* Create process-signal-handler.fixture.js

* Don't register duplicates

* Add missing lock

* another test

* update test

* revert some changes

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-07-11 12:48:46 -07:00

64 lines
1.1 KiB
JavaScript

import os from "os";
import { raise } from "./call-raise";
var counter = 0;
function done() {
counter++;
if (counter === 2) {
setTimeout(() => {
if (counter !== 2) {
console.log(counter);
console.log("FAIL");
process.exit(1);
}
console.log("PASS");
process.exit(0);
}, 1);
}
}
var counter2 = 0;
function done2() {
counter2++;
if (counter2 === 2) {
setTimeout(() => {
if (counter2 !== 2) {
console.log(counter2);
console.log("FAIL");
process.exit(1);
}
console.log("PASS");
process.exit(0);
}, 1);
}
}
const SIGUSR1 = os.constants.signals.SIGUSR1;
const SIGUSR2 = os.constants.signals.SIGUSR2;
switch (process.argv.at(-1)) {
case "SIGUSR1": {
process.on("SIGUSR1", () => {
done();
});
process.on("SIGUSR1", () => {
done();
});
raise(SIGUSR1);
break;
}
case "SIGUSR2": {
process.on("SIGUSR2", () => {
done2();
});
process.emit("SIGUSR2");
raise(SIGUSR2);
break;
}
default: {
throw new Error("Unknown argument: " + process.argv.at(-1));
}
}