|
1 | 1 | 'use strict';
|
2 |
| -require('../common'); |
3 |
| -var assert = require('assert'); |
4 |
| -var net = require('net'); |
5 |
| -var revivals = 0; |
6 |
| -var deaths = 0; |
| 2 | +const common = require('../common'); |
| 3 | +const net = require('net'); |
7 | 4 |
|
8 |
| -process.on('beforeExit', function() { deaths++; }); |
9 |
| - |
10 |
| -process.once('beforeExit', tryImmediate); |
| 5 | +process.once('beforeExit', common.mustCall(tryImmediate)); |
11 | 6 |
|
12 | 7 | function tryImmediate() {
|
13 |
| - console.log('set immediate'); |
14 |
| - setImmediate(function() { |
15 |
| - revivals++; |
16 |
| - process.once('beforeExit', tryTimer); |
17 |
| - }); |
| 8 | + setImmediate(common.mustCall(() => { |
| 9 | + process.once('beforeExit', common.mustCall(tryTimer)); |
| 10 | + })); |
18 | 11 | }
|
19 | 12 |
|
20 | 13 | function tryTimer() {
|
21 |
| - console.log('set a timeout'); |
22 |
| - setTimeout(function() { |
23 |
| - console.log('timeout cb, do another once beforeExit'); |
24 |
| - revivals++; |
25 |
| - process.once('beforeExit', tryListen); |
26 |
| - }, 1); |
| 14 | + setTimeout(common.mustCall(() => { |
| 15 | + process.once('beforeExit', common.mustCall(tryListen)); |
| 16 | + }), 1); |
27 | 17 | }
|
28 | 18 |
|
29 | 19 | function tryListen() {
|
30 |
| - console.log('create a server'); |
31 | 20 | net.createServer()
|
32 | 21 | .listen(0)
|
33 |
| - .on('listening', function() { |
34 |
| - revivals++; |
| 22 | + .on('listening', common.mustCall(function() { |
35 | 23 | this.close();
|
36 |
| - }); |
| 24 | + process.on('beforeExit', common.mustCall(() => {})); |
| 25 | + })); |
37 | 26 | }
|
38 |
| - |
39 |
| -process.on('exit', function() { |
40 |
| - assert.strictEqual(4, deaths); |
41 |
| - assert.strictEqual(3, revivals); |
42 |
| -}); |
0 commit comments