summaryrefslogtreecommitdiff
path: root/lib/_debugger.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/_debugger.js')
-rw-r--r--lib/_debugger.js20
1 files changed, 11 insertions, 9 deletions
diff --git a/lib/_debugger.js b/lib/_debugger.js
index 4dd9f5363..f9e24768f 100644
--- a/lib/_debugger.js
+++ b/lib/_debugger.js
@@ -25,6 +25,7 @@ var util = require('util'),
vm = require('vm'),
repl = require('repl'),
inherits = util.inherits,
+ assert = require('assert'),
spawn = require('child_process').spawn;
exports.start = function(argv, stdin, stdout) {
@@ -1612,6 +1613,7 @@ Interface.prototype.trySpawn = function(cb) {
childArgs = this.args;
this.killChild();
+ assert(!this.child);
if (this.args.length === 2) {
var match = this.args[1].match(/^([^:]+):(\d+)$/);
@@ -1647,12 +1649,10 @@ Interface.prototype.trySpawn = function(cb) {
}
}
- if (!this.child) {
- this.child = spawn(process.execPath, childArgs);
+ this.child = spawn(process.execPath, childArgs);
- this.child.stdout.on('data', this.childPrint.bind(this));
- this.child.stderr.on('data', this.childPrint.bind(this));
- }
+ this.child.stdout.on('data', this.childPrint.bind(this));
+ this.child.stderr.on('data', this.childPrint.bind(this));
this.pause();
@@ -1709,8 +1709,10 @@ Interface.prototype.trySpawn = function(cb) {
client.connect(port, host);
}
- setTimeout(function() {
- self.print('connecting to port ' + port + '..', true);
- attemptConnect();
- }, 50);
+ this.child.stderr.once('data', function() {
+ setImmediate(function() {
+ self.print('connecting to port ' + port + '..', true);
+ attemptConnect();
+ });
+ });
};