The reasoning: When sharing file descriptors with child process stdio, this became very complicated. You could have a child process share its stdout with the parent's stdout, for example.
What to do in this case? Never emit "exit" at all? What if the parent needs to know when the child is done processing? It led to some really awful complicated logic in many relatively common use cases. We opted to make things more explicit and simple by adding a "close" event which indicates that the stdio is closed, and an "exit" event which indicates that the child has exited. On Mon, Jun 11, 2012 at 12:49 PM, Marco Rogers <[email protected]> wrote: > See the changes to child_process > here. https://github.com/joyent/node/wiki/API-changes-between-v0.6-and-v0.8 > > It seems like exit doesn't wait for the i/o pipes to close anymore. There's > a new "close" event that might work better. I don't know the history of his > change though so YMMV. > > :Marco > > > On Monday, June 11, 2012 12:42:32 PM UTC-7, Jimb Esser wrote: >> >> I'm trying out the new node version (previously on 0.6.*), and I'm >> running into issues where processes spawned with child_process emit >> their 'exit' event before their stdout/stderr 'data' events >> (previously it seemed to always emit all data events before exiting), >> causing all sorts of problems with our servers. Is this expected? >> Always that way and we were just lucky before? Some undocumented API >> change? Bug from the other child_process changes? >> >> This is on Linux, and, unfortunately, doesn't seem to reproduce in a >> trivial test case, just when spawning processes when lots of other >> stuff is going on. >> >> On Jun 11, 8:59 am, Isaac Schlueter <[email protected]> wrote: >> > 2012.06.11, Version 0.7.10 (unstable) >> > >> > This is the second-to-last release on the 0.7 branch. Version 0.8.0 >> > will be released some time next week. As other even-numbered Node >> > releases before it, the v0.8.x releases will maintain API and binary >> > compatibility. >> > >> > The major changes are detailed >> > inhttps://github.com/joyent/node/wiki/API-changes-between-v0.6-and-v0.8 >> > >> > Please try out this release. There will be very few changes between >> > this and the v0.8.x release family. This is the last chance to comment >> > on the API before it is locked down for stability. >> > >> > * Roll V8 back to 3.9.24.31 >> > >> > * build: x64 target should always pass -m64 (Robert Mustacchi) >> > >> > * add NODE_EXTERN to node::Start (Joel Brandt) >> > >> > * repl: Warn about running npm commands (isaacs) >> > >> > * slab_allocator: fix crash in dtor if V8 is dead (Ben Noordhuis) >> > >> > * slab_allocator: fix leak of Persistent handles (Shigeki Ohtsu) >> > >> > * windows/msi: add node.js prompt to startmenu (Jeroen Janssen) >> > >> > * windows/msi: fix adding node to PATH (Jeroen Janssen) >> > >> > * windows/msi: add start menu links when installing (Jeroen Janssen) >> > >> > * windows: don't install x64 version into the 'program files (x86)' >> > folder (Matt Gollob) >> > >> > * domain: Fix #3379 domain.intercept no longer passes error arg to cb >> > (Marc Harter) >> > >> > * fs: make callbacks run in global context (Ben Noordhuis) >> > >> > * fs: enable fs.realpath on windows (isaacs) >> > >> > * child_process: expose UV_PROCESS_DETACHED as options.detached >> > (Charlie McConnell) >> > >> > * child_process: new stdio API for .spawn() method (Fedor Indutny) >> > >> > * child_process: spawn().ref() and spawn().unref() (Fedor Indutny) >> > >> > * Upgrade npm to 1.1.25 >> > - Enable npm link on windows >> > - Properly remove sh-shim on Windows >> > - Abstract out registry client and logger >> > >> > Source Code:http://nodejs.org/dist/v0.7.10/node-v0.7.10.tar.gz >> > >> > Windows Installer:http://nodejs.org/dist/v0.7.10/node-v0.7.10.msi >> > >> > Windows x64 Files:http://nodejs.org/dist/v0.7.10/x64/ >> > >> > Macintosh Installer >> > (Universal):http://nodejs.org/dist/v0.7.10/node-v0.7.10.pkg >> > >> > Other release files:http://nodejs.org/dist/v0.7.10/ >> > >> > Website:http://nodejs.org/docs/v0.7.10/ >> > >> > Documentation:http://nodejs.org/docs/v0.7.10/api/ > > -- > Job Board: http://jobs.nodejs.org/ > Posting guidelines: > https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines > You received this message because you are subscribed to the Google > Groups "nodejs" group. > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected] > For more options, visit this group at > http://groups.google.com/group/nodejs?hl=en?hl=en -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups "nodejs" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en
