@@ -8,6 +8,10 @@ if (cluster.isWorker) {
88
99 } ) . listen ( common . PORT , '127.0.0.1' ) ;
1010
11+ cluster . worker . on ( 'disconnect' , function ( ) {
12+ process . exit ( 42 ) ;
13+ } ) ;
14+
1115} else if ( cluster . isMaster ) {
1216
1317 var checks = {
@@ -18,6 +22,7 @@ if (cluster.isWorker) {
1822 } ,
1923 worker : {
2024 emitDisconnect : false ,
25+ emitDisconnectInsideWorker : false ,
2126 emitExit : false ,
2227 state : false ,
2328 suicideMode : false ,
@@ -59,9 +64,11 @@ if (cluster.isWorker) {
5964 } ) ;
6065
6166 // Check that the worker died
62- worker . once ( 'exit' , function ( ) {
67+ worker . once ( 'exit' , function ( code ) {
6368 checks . worker . emitExit = true ;
6469 checks . worker . died = ! alive ( worker . process . pid ) ;
70+ checks . worker . emitDisconnectInsideWorker = code === 42 ;
71+
6572 process . nextTick ( function ( ) {
6673 process . exit ( 0 ) ;
6774 } ) ;
@@ -74,6 +81,7 @@ if (cluster.isWorker) {
7481
7582 // events
7683 assert . ok ( w . emitDisconnect , 'Disconnect event did not emit' ) ;
84+ assert . ok ( w . emitDisconnectInsideWorker , 'Disconnect event did not emit inside worker' ) ;
7785 assert . ok ( c . emitDisconnect , 'Disconnect event did not emit' ) ;
7886 assert . ok ( w . emitExit , 'Exit event did not emit' ) ;
7987 assert . ok ( c . emitExit , 'Exit event did not emit' ) ;
0 commit comments