[zeromq-dev] non-blocking shutdown command

Matt Connolly matt.connolly at me.com
Wed Sep 11 12:31:06 CEST 2013


Right you are. Terminating the context calls socket “stop” which is different to the public “close” function.

Cheers,
Matt.

On 11 Sep 2013, at 6:03 pm, Richard_Newton at waters.com wrote:

> Hi Matt,
> 
> I'm not sure its legal to close the socket on one thread while reading from another, I just tried it on windows and it aborts rather than returning an error.
> 
> I'm actually trying to avoid doing any manual close myself, my motivation for all this is to use the C++ bindings and let the socket_t destructor do all the work when the application closes, but I need to get all the other threads unblocked and finished before the main class goes out of scope, and this needs to be non-blocking.
> 
> Signalling the sockets to close is precisely how the current zmq_ctx_term and new zmq_ctx_shutdown works, it just uses the internal commands mechanism of zmq rather than requiring a new socket.
> 
> My use case is just for at the end of the application, but I see no reason why the stop mechanism could not be exposed for single sockets if people would find that useful, some sort of zmq_socket_shutdown maybe?  Would this be useful to people?
> 
> Ric.
> 
> <graycol.gif>"Matt Connolly" ---10/09/2013 11:24:41 PM---Couldn’t this be already solved by having the main thread simply close the socket? Sockets are suppo
> 
> From:	"Matt Connolly" <matt.connolly at me.com>
> To:	"ZeroMQ development list" <zeromq-dev at lists.zeromq.org>, 
> Date:	10/09/2013 11:24 PM
> Subject:	Re: [zeromq-dev] non-blocking shutdown command
> Sent by:	zeromq-dev-bounces at lists.zeromq.org
> 
> 
> 
> Couldn’t this be already solved by having the main thread simply close the socket?
> 
> Sockets are supposed to be only used on a single thread, but I understood the zmq_term would close the sockets anyway. The result would be that calls to send or receive on the socket would return an error code.
> 
> Alternately, I thought you could use a PAIR socket to send a message from the main thread to the working thread and use that to signal the working thread to close the other socket and end processing. (i.e.: poll on both sockets).
> 
> I guess it depends if you want this thread shutdown to only happen once and finish everything, or if other parts of your app need to keep working.
> 
> -Matt
> 
> 
> On 11 Sep 2013, at 12:31 am, Richard_Newton at waters.com wrote:
> 
> Hi All,
> 
> I've just implemented a non-blocking shutdown command name zmq_ctx_shutdown and am concerned about the name.  This is an optional command that can be used when you want to shut down a context that will unblock any blocked operations on other threads but will not then block waiting for all sockets to be closed.
> 
> More details are in the pull request here: https://github.com/zeromq/libzmq/pull/650.
> 
> So do people have any comments on the name?
> 
> Ric.
> 
> 
> 
> 
> ===========================================================
> The information in this email is confidential, and is intended solely for the addressee(s). 
> Access to this email by anyone else is unauthorized and therefore prohibited.  If you are 
> not the intended recipient you are notified that disclosing, copying, distributing or taking 
> any action in reliance on the contents of this information is strictly prohibited and may be unlawful.
> ===========================================================
> 
> _______________________________________________
> zeromq-dev mailing list
> zeromq-dev at lists.zeromq.org
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
> 
> _______________________________________________
> zeromq-dev mailing list
> zeromq-dev at lists.zeromq.org
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
> 
> 
> ===========================================================
> The information in this email is confidential, and is intended solely for the addressee(s). 
> Access to this email by anyone else is unauthorized and therefore prohibited.  If you are 
> not the intended recipient you are notified that disclosing, copying, distributing or taking 
> any action in reliance on the contents of this information is strictly prohibited and may be unlawful.
> ===========================================================
> 
> _______________________________________________
> zeromq-dev mailing list
> zeromq-dev at lists.zeromq.org
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20130911/2a433562/attachment.htm>


More information about the zeromq-dev mailing list