Exception raised in wrong thread?
Krzysztof Nowak
pegazik at gmail.com
Tue Sep 20 07:48:20 EDT 2005
Hello all python experts.
I have problem and I ask you for help. Probably there is some quite
easy solution, but I can't see it.
I'm trying to perform some action that have to be timeout safe. So
here is the structure of my program:
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
def TimeoutHandler():
print '!'
raise Exception
class Active:
def Action:
timer = Timer(1, TimeoutHandler)
print '1'
timer.start()
try:
print '2'
time.sleep(20)
print '3'
except:
print '4'
else:
print '5'
timer.cancel()
print '6'
active = Active()
active.Action()
///////////////////////////////////////////
The output is:
12!356
My question is, why exception is not raised correctly? Could be the
reason that (probably) timer is another thread and there is no
exception in the main thread? How to solve this problem? [My timeout
should be smaller than one second so I can't use signal.alarm()]
Thanks for your reply,
Krzysztof Nowak
More information about the Python-list
mailing list