mirror of https://github.com/lukechilds/node.git
Browse Source
This commit prevents child process stdio streams from being automatically flushed on child process exit/close if a 'readable' event handler has been attached at the time of exit. Without this, child process stdio data can be lost if the process exits quickly and a `read()` (e.g. from a 'readable' handler) hasn't had the chance to get called yet. Fixes: https://github.com/nodejs/node/issues/5034 PR-URL: https://github.com/nodejs/node/pull/5037 Reviewed-By: James M Snell <jasnell@gmail.com>v0.12-staging
committed by
Myles Borins
2 changed files with 22 additions and 2 deletions
@ -0,0 +1,17 @@ |
|||
'use strict'; |
|||
var cp = require('child_process'); |
|||
var common = require('../common'); |
|||
var assert = require('assert'); |
|||
|
|||
var buffer = []; |
|||
var p = cp.spawn('echo', ['123']); |
|||
p.on('close', common.mustCall(function(code, signal) { |
|||
assert.strictEqual(code, 0); |
|||
assert.strictEqual(signal, null); |
|||
assert.strictEqual(Buffer.concat(buffer).toString().trim(), '123'); |
|||
})); |
|||
p.stdout.on('readable', function() { |
|||
var buf; |
|||
while (buf = this.read()) |
|||
buffer.push(buf); |
|||
}); |
Loading…
Reference in new issue