Signal handler doesn`t handle any signals while main thread is blocked
Chris
cwitts at gmail.com
Mon May 26 09:20:37 EDT 2008
On May 26, 2:26 pm, "Grzegorz KokosiĆski" <g.kokosin... at gmail.com>
wrote:
> Hi!
> I waste a lot of my time figuring why this snip of code doesn`t work.
> And still without any solution ;/
> Does anybody know why this handler cannot handle SIGINT signal? What
> did I wrong?
>
> Thanks in advance.
>
> #
> # CODE
> #
> import signal
> from threading import *
>
> def siginthandler(signum, frame):
> global work,cv
> print 'terminating...'
> cv.acquire()
> work = 0
> cv.notifyAll ()
> cv.release()
>
> work = 1
> signal.signal (signal.SIGINT, siginthandler)
>
> print 'wait for SIGINT signal'
> cv = Condition ()
> cv.acquire()
> while work:
> print 'waiting...'
> cv.wait()
> print 'woke up'
> cv.release()
>
> print 'terminated'
change cv.wait() to cv.wait(delay) and it will capture the terminate
request and wrap the cv.wait(delay) in a try/except IOError: break
block.
More information about the Python-list
mailing list