On 07/18/2013 09:52 PM, Justin Karneges wrote:
> 2) What does the REQ socket do if it receives a message when it is not 
> in a "requesting" state? My hope is that it would read messages and 
> throw them away. If there's only exactly one read for every write, then 
> I can envision a situation where the alignment is off and every request 
> gets a wrongly matched response. Putting an id field on each 
> request/response will help detect this, but it wouldn't get you unstuck. 
> What can you say about this?

In the currently released versions, the recv() call on the REQ socket
will take a message from its pipes in a fair-queued way and hand that to
the application. That means if you make a REQ socket and someone
connects and sends a message to it, your next recv() will get that
message - even if it arrived before the send() call.

In zmq master that behavior has changed to drop all messages but the one
from the pipe that a request was sent to. And the send() will clear the
inbound message queues.

Christian
_______________________________________________
zeromq-dev mailing list
[email protected]
http://lists.zeromq.org/mailman/listinfo/zeromq-dev

Reply via email to