@@ -148,20 +148,18 @@ function removeWorker(worker) {
148
148
delete cluster . workers [ worker . id ] ;
149
149
150
150
if ( keys ( cluster . workers ) . length === 0 ) {
151
- assert ( keys ( handles ) . length === 0 , 'Resource leak detected.' ) ;
151
+ assert ( handles . size === 0 , 'Resource leak detected.' ) ;
152
152
intercom . emit ( 'disconnect' ) ;
153
153
}
154
154
}
155
155
156
156
function removeHandlesForWorker ( worker ) {
157
157
assert ( worker ) ;
158
158
159
- for ( var key in handles ) {
160
- const handle = handles [ key ] ;
161
-
159
+ handles . forEach ( ( handle , key ) => {
162
160
if ( handle . remove ( worker ) )
163
- delete handles [ key ] ;
164
- }
161
+ handles . delete ( key ) ;
162
+ } ) ;
165
163
}
166
164
167
165
cluster . fork = function ( env ) {
@@ -277,7 +275,7 @@ function queryServer(worker, message) {
277
275
278
276
const key = `${ message . address } :${ message . port } :${ message . addressType } :` +
279
277
`${ message . fd } :${ message . index } ` ;
280
- var handle = handles [ key ] ;
278
+ var handle = handles . get ( key ) ;
281
279
282
280
if ( handle === undefined ) {
283
281
let address = message . address ;
@@ -302,12 +300,13 @@ function queryServer(worker, message) {
302
300
constructor = SharedHandle ;
303
301
}
304
302
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 ) ;
311
310
}
312
311
313
312
if ( ! handle . data )
@@ -319,11 +318,11 @@ function queryServer(worker, message) {
319
318
errno : errno ,
320
319
key : key ,
321
320
ack : message . seq ,
322
- data : handles [ key ] . data
321
+ data : handles . get ( key ) . data
323
322
} , reply ) ;
324
323
325
324
if ( errno )
326
- delete handles [ key ] ; // Gives other workers a chance to retry.
325
+ handles . delete ( key ) ; // Gives other workers a chance to retry.
327
326
328
327
send ( worker , reply , handle ) ;
329
328
} ) ;
@@ -346,10 +345,10 @@ function listening(worker, message) {
346
345
// removed by a prior call to removeHandlesForWorker() so guard against that.
347
346
function close ( worker , message ) {
348
347
const key = message . key ;
349
- const handle = handles [ key ] ;
348
+ const handle = handles . get ( key ) ;
350
349
351
350
if ( handle && handle . remove ( worker ) )
352
- delete handles [ key ] ;
351
+ handles . delete ( key ) ;
353
352
}
354
353
355
354
function send ( worker , message , handle , cb ) {
0 commit comments