@ -1,29 +1,29 @@
'use strict' ;
'use strict' ;
var common = require ( '../common' ) ;
const common = require ( '../common' ) ;
var assert = require ( 'assert' ) ;
const assert = require ( 'assert' ) ;
var fork = require ( 'child_process' ) . fork ;
const fork = require ( 'child_process' ) . fork ;
var net = require ( 'net' ) ;
const net = require ( 'net' ) ;
if ( process . argv [ 2 ] !== 'child' ) {
if ( process . argv [ 2 ] !== 'child' ) {
console . error ( '[%d] master' , process . pid ) ;
console . error ( '[%d] master' , process . pid ) ;
var worker = fork ( __ filename , [ 'child' ] ) ;
const worker = fork ( __ filename , [ 'child' ] ) ;
var called = false ;
let called = false ;
worker . once ( 'message' , function ( msg , handle ) {
worker . once ( 'message' , common . mustCall ( function ( msg , handle ) {
assert . e qual( msg , 'handle' ) ;
assert . strictE qual( msg , 'handle' ) ;
assert . ok ( handle ) ;
assert . ok ( handle ) ;
worker . send ( 'got' ) ;
worker . send ( 'got' ) ;
handle . on ( 'data' , function ( data ) {
handle . on ( 'data' , function ( data ) {
called = true ;
called = true ;
assert . e qual( data . toString ( ) , 'hello' ) ;
assert . strictE qual( data . toString ( ) , 'hello' ) ;
} ) ;
} ) ;
handle . on ( 'end' , function ( ) {
handle . on ( 'end' , function ( ) {
worker . kill ( ) ;
worker . kill ( ) ;
} ) ;
} ) ;
} ) ;
} ) ) ;
process . once ( 'exit' , function ( ) {
process . once ( 'exit' , function ( ) {
assert . ok ( called ) ;
assert . ok ( called ) ;
@ -31,20 +31,21 @@ if (process.argv[2] !== 'child') {
} else {
} else {
console . error ( '[%d] worker' , process . pid ) ;
console . error ( '[%d] worker' , process . pid ) ;
var socket ;
let socket ;
var cbcalls = 0 ;
let cbcalls = 0 ;
function socketConnected ( ) {
function socketConnected ( ) {
if ( ++ cbcalls === 2 )
if ( ++ cbcalls === 2 )
process . send ( 'handle' , socket ) ;
process . send ( 'handle' , socket ) ;
}
}
var server = net . createServer ( function ( c ) {
const server = net . createServer ( function ( c ) {
process . once ( 'message' , function ( msg ) {
process . once ( 'message' , common . mustCall ( function ( msg ) {
assert . e qual( msg , 'got' ) ;
assert . strictE qual( msg , 'got' ) ;
c . end ( 'hello' ) ;
c . end ( 'hello' ) ;
} ) ;
} ) ) ;
socketConnected ( ) ;
socketConnected ( ) ;
} ) ;
} ) ;
server . listen ( common . PORT , function ( ) {
server . listen ( common . PORT , function ( ) {
socket = net . connect ( common . PORT , '127.0.0.1' , socketConnected ) ;
socket = net . connect ( common . PORT , '127.0.0.1' , socketConnected ) ;
} ) ;
} ) ;