Message211099
The following code shows that the trace function is removed when an alarm raises an exception and prints: 'trace function: None'
import sys, signal, time
def trace(frame, event, arg):
if frame.f_code.co_name == 'foo':
while 1:
time.sleep(.02)
return trace
def foo(): pass
def handler(*args):
1/0
sys.settrace(trace)
signal.signal(signal.SIGALRM, handler)
signal.alarm(1)
try:
foo()
except ZeroDivisionError:
pass
print('trace function:', sys.gettrace()) |
|
Date |
User |
Action |
Args |
2014-02-12 16:25:06 | xdegaye | set | recipients:
+ xdegaye |
2014-02-12 16:25:06 | xdegaye | set | messageid: <1392222306.5.0.75821236244.issue20601@psf.upfronthosting.co.za> |
2014-02-12 16:25:06 | xdegaye | link | issue20601 messages |
2014-02-12 16:25:06 | xdegaye | create | |
|