On Sun, Mar 25, 2018 at 8:26 PM, Michael Kilburn <[email protected]> wrote:
> On Sun, Mar 25, 2018 at 2:05 PM, Jameson Nash <[email protected]> wrote: > >> > unless uv_close() keeps track of currently outstanding requests and >> Libuv keeps track of all outstanding requests (how else would it have >> known who to notify for completion) >> > > So, can I rely on uv_close callback to be invoked after all outstanding > requests (on handle being closed) are canceled (and their callbacks are > invoked)? > For future reference: I spent considerable time looking through uv_close() code for uv_tcp_t (win and linux) -- it seems that (as of now) close_cb is guaranteed to be called after all outstanding connect_cb/write_cb/read_cb are invoked with UV_ECANCELED. I am about 95% sure -- some of code paths I looked at are mind-bending... It also seems that considerable effort was made to deliver this behavior (esp in Windows case) -- i.e. there is a good chance this guarantee is intentional and will stand. Still not sure about other handle types (and general intent wrt order of close_cb invokation and UV_ECANCELED delivery). -- 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 https://groups.google.com/group/libuv. For more options, visit https://groups.google.com/d/optout.
