diff options
Diffstat (limited to 'lib/internal/child_process.js')
-rw-r--r-- | lib/internal/child_process.js | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/lib/internal/child_process.js b/lib/internal/child_process.js index 4e6a25a8a3..a0f083d8de 100644 --- a/lib/internal/child_process.js +++ b/lib/internal/child_process.js @@ -375,12 +375,11 @@ ChildProcess.prototype.spawn = function(options) { err === UV_ENFILE || err === UV_ENOENT) { process.nextTick(onErrorNT, this, err); + // There is no point in continuing when we've hit EMFILE or ENFILE // because we won't be able to set up the stdio file descriptors. - // It's kind of silly that the de facto spec for ENOENT (the test suite) - // mandates that stdio _is_ set up, even if there is no process on the - // receiving end, but it is what it is. - if (err !== UV_ENOENT) return err; + if (err === UV_EMFILE || err === UV_ENFILE) + return err; } else if (err) { // Close all opened fds on error for (i = 0; i < stdio.length; i++) { |