On Wed, Feb 1, 2012 at 10:02, Justin Karneges <[email protected]> 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
> [email protected]
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>
_______________________________________________
zeromq-dev mailing list
[email protected]
http://lists.zeromq.org/mailman/listinfo/zeromq-dev

Reply via email to