Bert, thanks for the info. After adding calls to uv_close on the close_cb of my uv_process_t, all my problems were fixed!
On Wed, Oct 22, 2014 at 11:10 PM, Bert Belder <[email protected]> wrote: >> Is it guaranteed that the last callback of a process will be the >> `uv_process_t.exit_cb`? I need to know this to determine when the process >> handles can be safely closed. > > You should explicitly close the stdio pipes. > > Read callbacks can indeed come in after the exit_cb is fired. Sometimes data > may still be lingering in the stdout/stderr pipes which will be flushed > after the exit callback. > > You have to realize that there are scenarios in which the pipes stay open > long after the process exits. This may for example happen when the child > process creates another process that inherits the child's stdio pipes. The > grand-child may outlive it's parent. > > - Bert > > > On Monday, July 7, 2014 12:38:27 PM UTC-7, Thiago Arruda wrote: >> >> When a process is spawned with stdout/stderr connected to pipes, there are >> three associated callbacks: >> >> - One for stdout data >> - One for stderr data >> - One for when the process exits. >> >> When a stream reaches EOF, it's read callback will be invoked with an >> error set. That means when a process exits, all three callbacks will be >> invoked. >> >> Is it guaranteed that the last callback of a process will be the >> `uv_process_t.exit_cb`? I need to know this to determine when the process >> handles can be safely closed. >> >> Thanks in advance >> >> Thiago. > > -- > You received this message because you are subscribed to the Google Groups > "libuv" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/libuv. > For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "libuv" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/libuv. For more options, visit https://groups.google.com/d/optout.
