![]() |
KeyboardInterrupt being lost?
I have a simple test proggie that isn't behaving like I expect ( found
below ). The script will infinitely run ( as expected ), but seems to completely ignore control-C's. Shouldn't the interpreter pass along KeyboardInterrupts and break out of the while loop, or am I missing something? Using python 2.4.2 on linux ( if it matters ) -- Script Below -- import threading, traceback, time class TestThread ( threading.Thread ): def __init__ ( self ): threading.Thread.__init__ ( self ) def run ( self ): print "Starting..." while True: time.sleep ( 1 ) return if __name__ == '__main__': test = TestThread ( ) test.start() print "Started..." test.join() -- chris |
Re: KeyboardInterrupt being lost?
Operation Latte Thunder wrote:
> I have a simple test proggie that isn't behaving like I expect ( found > below ). The script will infinitely run ( as expected ), but seems to > completely ignore control-C's. Shouldn't the interpreter pass along > KeyboardInterrupts and break out of the while loop, or am I missing > something? > > Using python 2.4.2 on linux ( if it matters ) > > -- Script Below -- > > import threading, traceback, time > > class TestThread ( threading.Thread ): > def __init__ ( self ): > threading.Thread.__init__ ( self ) > def run ( self ): > print "Starting..." > while True: > time.sleep ( 1 ) > return > > if __name__ == '__main__': > test = TestThread ( ) > test.start() > print "Started..." > test.join() > > > -- > chris Chris, Thread.join() is implemented using a lock, and the acquisition of a lock is uninterruptible. (See http://docs.python.org/lib/module-thread.html) Therefore, your main thread will block until the other thread terminates or the process is forcibly killed. Even if it could be interrupted, I don't think there's any way to raise that exception in the other thread. (Python's threading support leaves something to be desired when compared to, say, Java.) -- David |
| All times are GMT. The time now is 05:55 PM. |
Powered by vBulletin®. Copyright ©2000 - 2013, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.