On Aug 14, 3:30 am, "Mathieu Prevot" <[EMAIL PROTECTED]> wrote: > 2008/8/13 Parimala <[EMAIL PROTECTED]>: > > > > > Hello, > > > I am using python2.5.1 version to run my test scripts. I want to use > > 'threading' module in my tests. As a startup program, I had run the > > following one. > > > importthreading > > import sys > > import time > > > def hello(): > > i=0 > > try: > > while i<10: > > print "hi" > > time.sleep(1) > > i+=1 > > except KeyboardInterrupt: > > print 'KeyboardInterrupt' > > raise KeyboardInterrupt > > > try: > > thread=threading.Thread(target=hello,args=()) > > thread.start() > > except KeyboardInterrupt: > > print 'KeyboardInterrupt' > > raise KeyboardInterrupt > > > once program starts, problem is.. > > I am not able to abort the thread using (CTRL+C) KeyboardInterrupt. While > > running if I press CTRL+C, it won't generate any exception until the end of > > the execution. Once the execution gets over, it will give "Exception > > exceptions.KeyboardInterrupt in <module 'threading' from > > 'C:\python25\lib\threading.py'> ignored" this message and exits. > > > I had gone through some documents, it says if a thread is joined with > > .join() method then we can't stop that process until it releases the lock > > what it acquired. But in the above program I didn't use .join() method but > > still I am not able to abort the thread. > > > Could you please suggest me how can I abort the thread at any point in time > > using CTRL+C. > > Hi, > > a terminate method is given here:http://sebulba.wikispaces.com/recipe+thread2 > > so you can terminate the thread by: > > (...) > t.start() > (...) > > while True: > try: > #some code > except KeyboardInterrupt: > t.terminate() > break > > Mathieu
(For some reason the OP hasn't come through to groups.google.com.. odd) Note that it won't interrupt any blocked I/O, which is often what you need the most. If your threads are CPU-bound you can simply have them check a flag and exit if it becomes True. -- http://mail.python.org/mailman/listinfo/python-list