@@ -148,20 +148,18 @@ function removeWorker(worker) {
148148 delete cluster . workers [ worker . id ] ;
149149
150150 if ( keys ( cluster . workers ) . length === 0 ) {
151- assert ( keys ( handles ) . length === 0 , 'Resource leak detected.' ) ;
151+ assert ( handles . size === 0 , 'Resource leak detected.' ) ;
152152 intercom . emit ( 'disconnect' ) ;
153153 }
154154}
155155
156156function removeHandlesForWorker ( worker ) {
157157 assert ( worker ) ;
158158
159- for ( var key in handles ) {
160- const handle = handles [ key ] ;
161-
159+ handles . forEach ( ( handle , key ) => {
162160 if ( handle . remove ( worker ) )
163- delete handles [ key ] ;
164- }
161+ handles . delete ( key ) ;
162+ } ) ;
165163}
166164
167165cluster . fork = function ( env ) {
@@ -277,7 +275,7 @@ function queryServer(worker, message) {
277275
278276 const key = `${ message . address } :${ message . port } :${ message . addressType } :` +
279277 `${ message . fd } :${ message . index } ` ;
280- var handle = handles [ key ] ;
278+ var handle = handles . get ( key ) ;
281279
282280 if ( handle === undefined ) {
283281 let address = message . address ;
@@ -302,12 +300,13 @@ function queryServer(worker, message) {
302300 constructor = SharedHandle ;
303301 }
304302
305- handles [ key ] = handle = new constructor ( key ,
306- address ,
307- message . port ,
308- message . addressType ,
309- message . fd ,
310- message . flags ) ;
303+ handle = new constructor ( key ,
304+ address ,
305+ message . port ,
306+ message . addressType ,
307+ message . fd ,
308+ message . flags ) ;
309+ handles . set ( key , handle ) ;
311310 }
312311
313312 if ( ! handle . data )
@@ -319,11 +318,11 @@ function queryServer(worker, message) {
319318 errno : errno ,
320319 key : key ,
321320 ack : message . seq ,
322- data : handles [ key ] . data
321+ data : handles . get ( key ) . data
323322 } , reply ) ;
324323
325324 if ( errno )
326- delete handles [ key ] ; // Gives other workers a chance to retry.
325+ handles . delete ( key ) ; // Gives other workers a chance to retry.
327326
328327 send ( worker , reply , handle ) ;
329328 } ) ;
@@ -346,10 +345,10 @@ function listening(worker, message) {
346345// removed by a prior call to removeHandlesForWorker() so guard against that.
347346function close ( worker , message ) {
348347 const key = message . key ;
349- const handle = handles [ key ] ;
348+ const handle = handles . get ( key ) ;
350349
351350 if ( handle && handle . remove ( worker ) )
352- delete handles [ key ] ;
351+ handles . delete ( key ) ;
353352}
354353
355354function send ( worker , message , handle , cb ) {
0 commit comments