[zeromq-dev] python, calls not unblocking on signal

MinRK benjaminrk at gmail.com
Wed Feb 1 19:15:10 CET 2012


On Wed, Feb 1, 2012 at 10:02, Justin Karneges <justin at affinix.com> wrote:

> Hi,
>
> I'm running workers in different threads of a python app, while the main
> thread
> sleeps.  I want to be able to cleanly shutdown the app when ctrl-c is
> pressed.
> As it is now, when ctrl-c is pressed, the main thread receives
> KeyboardException.  However, blocking zmq calls in the worker threads do
> not
> return with EINTR and so all the threads remain stuck.
>
> Is this a python peculiarity regarding signal handling?  How are people
> doing
> clean shutdowns on ctrl-c with python?
>

It's a general Python issue.  Python + Threads + Signals = mess.

>From the signal doc <http://docs.python.org/library/signal.html>:

only the main thread can set a new signal handler, and the main thread will
be the only one to receive signals (this is enforced by the
Python signal module, even if the underlying thread implementation supports
sending signals to individual threads)

-MinRK


>
> Thanks,
> Justin
> _______________________________________________
> 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/20120201/3b0d3a2b/attachment.htm>


More information about the zeromq-dev mailing list