@@ -8,6 +8,10 @@ if (cluster.isWorker) {
8
8
9
9
} ) . listen ( common . PORT , '127.0.0.1' ) ;
10
10
11
+ cluster . worker . on ( 'disconnect' , function ( ) {
12
+ process . exit ( 42 ) ;
13
+ } ) ;
14
+
11
15
} else if ( cluster . isMaster ) {
12
16
13
17
var checks = {
@@ -18,6 +22,7 @@ if (cluster.isWorker) {
18
22
} ,
19
23
worker : {
20
24
emitDisconnect : false ,
25
+ emitDisconnectInsideWorker : false ,
21
26
emitExit : false ,
22
27
state : false ,
23
28
suicideMode : false ,
@@ -59,9 +64,11 @@ if (cluster.isWorker) {
59
64
} ) ;
60
65
61
66
// Check that the worker died
62
- worker . once ( 'exit' , function ( ) {
67
+ worker . once ( 'exit' , function ( code ) {
63
68
checks . worker . emitExit = true ;
64
69
checks . worker . died = ! alive ( worker . process . pid ) ;
70
+ checks . worker . emitDisconnectInsideWorker = code === 42 ;
71
+
65
72
process . nextTick ( function ( ) {
66
73
process . exit ( 0 ) ;
67
74
} ) ;
@@ -74,6 +81,7 @@ if (cluster.isWorker) {
74
81
75
82
// events
76
83
assert . ok ( w . emitDisconnect , 'Disconnect event did not emit' ) ;
84
+ assert . ok ( w . emitDisconnectInsideWorker , 'Disconnect event did not emit inside worker' ) ;
77
85
assert . ok ( c . emitDisconnect , 'Disconnect event did not emit' ) ;
78
86
assert . ok ( w . emitExit , 'Exit event did not emit' ) ;
79
87
assert . ok ( c . emitExit , 'Exit event did not emit' ) ;
0 commit comments