[zeromq-dev] socket writability and events
Justin Karneges
justin at affinix.com
Fri Dec 14 21:40:41 CET 2012
Hi,
Is it possible that a socket could be determined to be writable but then
actually isn't writable at the time of write? For example, say a connection
exists on a bind socket and ZMQ_POLLOUT is indicated. But then just before
calling zmq_send(), the connection is destroyed. A socket that was using bind
should have no queue anymore, and therefore I would expect the send to
actually block (or report EAGAIN). I just want to confirm this is indeed
possible.
Secondly, assuming the above is true, if you're doing an event loop
integration and checking ZMQ_EVENTS after every call to zmq_send, do you still
need to check the events even if zmq_send fails? My guess is that if it fails
with EAGAIN, that you probably should check the events (especially if the
reason you attempted a write in the first place is because ZMQ_POLLOUT was
indicated prior). What I'm doing in my code now is checking events after
success or EAGAIN, but not checking in any other case. Looking for confirmation
on this as well.
Thanks,
Justin
More information about the zeromq-dev
mailing list