[zeromq-dev] behavior of zmq_term in 2.1.0

Martin Sustrik sustrik at 250bpm.com
Sat Nov 27 23:14:35 CET 2010


On 11/27/2010 10:53 PM, Chuck Remes wrote:
> Let's assume that zmq_term() calls zmq_close() on each known socket.
>
> Why can't zmq_term() block for a *maximum* of milliseconds as set on each socket by the ZMQ_LINGER option? If the goal is to avoid dropping packets when exiting, then zmq_term() can interrupt those sockets (so that no additional messages can be queued) and then wait ZMQ_LINGER milliseconds before socket termination is complete.
>
> At that point, the context should be able to exit cleanly.
>
> Doesn't that solve the original problem of dropping packets on exit? What am I missing?
>    
The fact that there may be other threads still running and using the 
sockets. You cannot deallocate a socket while it is still in use by 
another thread.

Martin




More information about the zeromq-dev mailing list