Skip to content

Commit

Permalink
child_process: move anonymous class to top level
Browse files Browse the repository at this point in the history
Move the anonymous class out of setupChannel to clarify code.

PR-URL: #11147
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Anna Henningsen <[email protected]>
  • Loading branch information
JacksonTian authored and addaleax committed Feb 16, 2017
1 parent b5c8852 commit f9dc722
Showing 1 changed file with 19 additions and 18 deletions.
37 changes: 19 additions & 18 deletions lib/internal/child_process.js
Original file line number Diff line number Diff line change
Expand Up @@ -407,6 +407,24 @@ ChildProcess.prototype.unref = function() {
if (this._handle) this._handle.unref();
};

class Control extends EventEmitter {
constructor(channel) {
super();
this.channel = channel;
this.refs = 0;
}
ref() {
if (++this.refs === 1) {
this.channel.ref();
}
}
unref() {
if (--this.refs === 0) {
this.channel.unref();
this.emit('unref');
}
}
}

function setupChannel(target, channel) {
target.channel = channel;
Expand All @@ -421,24 +439,7 @@ function setupChannel(target, channel) {
target._handleQueue = null;
target._pendingHandle = null;

const control = new class extends EventEmitter {
constructor() {
super();
this.channel = channel;
this.refs = 0;
}
ref() {
if (++this.refs === 1) {
this.channel.ref();
}
}
unref() {
if (--this.refs === 0) {
this.channel.unref();
this.emit('unref');
}
}
}();
const control = new Control(channel);

var decoder = new StringDecoder('utf8');
var jsonBuffer = '';
Expand Down

0 comments on commit f9dc722

Please sign in to comment.