Hi Henry, > Here is my scenario: > > * I have a manager process that sends out a message every second on > a PUSH socket over a period of 10 seconds > * I have a worker process with a HWM of of 1 that receives messages > and takes 5 seconds to process each message (i.e. sleep 5) > > I start the manager process which blocks until I start worker process. > As soon as the worker connects, the manager starts sending out its > messages every second: it does not block after sending out the 2nd > message (nor the 3rd, 4th, 5th, etc.).
That's because there are TCP buffers in the middle that can hold additional messages. There have been a request to enforce the precise limit set by HWMs via explicit acknowledgements of messages, however, that haven't been implemented yet. > Furthermore, if I kill the worker > after the manager has sent out 7 messages and then start a new one, > messages 2-7 get lost (message 1 has been processed): I would expect > only message 2, and possibly message 3, to be lost. Same reason as above. Messages are stored in TCP buffers which are deallocated when connection is killed. Martin _______________________________________________ zeromq-dev mailing list [email protected] http://lists.zeromq.org/mailman/listinfo/zeromq-dev
