[zeromq-dev] Signal handling in blocking zmq_recv
Martin Sustrik
sustrik at 250bpm.com
Tue Mar 9 19:57:09 CET 2010
Martin Lucina wrote:
> chris at chriswongstudio.com said:
>> Martin, thanks for the pointer to the zmq-camera example. It handles SIGINT/SIGQUIT etc by exiting the process. If I want to interrupt all the blocked zmq_recv calls when receiving a SIGINT, how would you suggest me approaching this problem? zmq_recv seems to be blocked forever.
>
> You can't do that (interrupt all blocking calls) right now without killing
> the thread, or somehow signalling (e.g. via yet another inproc socket) to
> tell it to go away. This is why zmq-camera does not try to do anything
> better than exit().
>
> Martin, I almost forgot, weren't we going to either change the default
> behaviour of zmq_term() or add a flag to say "Please go away NOW!"?
Yes. Sane termination of blocking calls in case of zmq_term is in the
pipeline.
The idea is that once you call zmq_term on the context, all blocking
calls withing the context will exit with specific error code (ESHUTDOWN
or similar).
Martin
More information about the zeromq-dev
mailing list