[zeromq-dev] python, calls not unblocking on signal
benjaminrk at gmail.com
Thu Feb 2 01:31:35 CET 2012
On Wed, Feb 1, 2012 at 11:01, Justin Karneges <justin at affinix.com> wrote:
> On Wednesday, February 01, 2012 10:15:10 AM MinRK wrote:
> > > 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
> > be the only one to receive signals (this is enforced by the
> > Python signal module, even if the underlying thread implementation
> > sending signals to individual threads)
> Bummer. Poller and non-blocking writes it is, I guess...
If you are just looking for clean shutdown, you can terminate the Context
from the main thread when it is interrupted, and then blocking calls in
other threads will raise ZMQError(ETERM).
For example: https://gist.github.com/1720387
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the zeromq-dev