Hi

To close a libuv tcp socket, I understand that I need to call uv_close( 
handle ) and then expect to have the close_cb() callback invoked by its 
uv_loop sometime later.

My concern is what may happen to pending in-progress write requests, 
started prior to the call to uv_close.  The documentation explains that 
they will be cancelled and have their write_cb callback called 
with status=UV_ECANCELED.  What I'm not sure of is whether these 
write-cancelled callbacks can arrive after the close_cb callback.     

The reason I care about this is that I'm using both callbacks to send 
events to a user object; I'd like the  close_cb callback to signify the 
meaning, "no more libuv callbacks for this object", thus allowing the 
object to be deleted.  However doing that delete would be unsafe if a later 
write_cb(UV_ECANCELED) might arrive and leads to delivering a write-failed 
event to same user object.

So is there any guarantee of callback ordering for uv_write & uv_close 
callbacks? 

Thanks,

Darren

-- 
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.

Reply via email to