472,142 Members | 1,301 Online
Bytes | Software Development & Data Engineering Community
Post +

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 472,142 software developers and data experts.

RE: threading

1. check out the Caveats for thread module: http://docs.python.org/lib/module-thread.html

Threads interact strangely with interrupts: the KeyboardInterrupt exceptionwill be received by an arbitrary thread. (When the signal module is available, interrupts always go to the main thread.)

i.e., all threads (including main) to catch interrupt exceptions, and propagate that information to other threads.

2. since there is no way to interrupt a sleep (not aware of any), sleep is not the choice. use something else like napping. I mean, take shorter intervals of sleep, check every thing is fine and go back to napping. if something is fishy - go catch it.

hope that helps.
-----Original Message-----
From: py************************************************ **@python.org
[mailto:py***************************************** *********@python.org]
On Behalf Of Rhamphoryncus
Sent: Thursday, August 14, 2008 2:52 PM
To: py*********@python.org
Subject: Re: threading
On Aug 14, 3:30*am, "Mathieu Prevot" <mathieu.pre...@ens.frwrote:
2008/8/13 Parimala <parimal...@accord-soft.com>:
* * * *I am using python2.5.1 version to run my test scripts. Iwant to use
'threading' module in my tests. As a startup program, I had run the
following one.
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
* 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.


a terminate method is given here:http://sebulba.wikispaces.com/recipe+thread2

so you can terminate the thread by:


while True:
* try:
* * #some code
* except KeyboardInterrupt:
* * t.terminate()
* * break

(For some reason the OP hasn't come through to groups.google.com..

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.
The information contained in this message and any attachment may be
proprietary, confidential, and privileged or subject to the work
product doctrine and thus protected from disclosure. If the reader
of this message is not the intended recipient, or an employee or
agent responsible for delivering this message to the intended
recipient, you are hereby notified that any dissemination,
distribution or copying of this communication is strictly prohibited.
If you have received this communication in error, please notify me
immediately by replying to this message and deleting it and all
copies and backups thereof. Thank you.
Aug 14 '08 #1
0 1142

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

65 posts views Thread by Anthony_Barker | last post: by
2 posts views Thread by Egor Bolonev | last post: by
6 posts views Thread by CK | last post: by
2 posts views Thread by Vjay77 | last post: by
11 posts views Thread by Paul Sijben | last post: by
reply views Thread by kingcrowbar.list | last post: by
7 posts views Thread by Mike P | last post: by
126 posts views Thread by Dann Corbit | last post: by

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.