123456789101112131415161718192021222324252627282930 |
- 'use strict';
- var cbs = [];
- var called = false;
- function exit(exit, signal) {
- if (called) {
- return;
- }
- called = true;
- cbs.forEach(function (el) {
- el();
- });
- if (exit === true) {
- process.exit(128 + signal);
- }
- };
- module.exports = function (cb) {
- cbs.push(cb);
- if (cbs.length === 1) {
- process.once('exit', exit);
- process.once('SIGINT', exit.bind(null, true, 2));
- process.once('SIGTERM', exit.bind(null, true, 15));
- }
- };
|