|
@@ -189,9 +189,14 @@ class Timer(Thread):
|
|
|
try:
|
|
|
entry()
|
|
|
except Exception, exc:
|
|
|
- if not self.schedule.handle_error(sys.exc_info()):
|
|
|
- warnings.warn(TimedFunctionFailed(repr(exc))),
|
|
|
- traceback.print_stack()
|
|
|
+ exc_info = sys.exc_info()
|
|
|
+ try:
|
|
|
+ if not self.schedule.handle_error(exc_info):
|
|
|
+ warnings.warn(TimedFunctionFailed(repr(exc))),
|
|
|
+ sys.stderr.write("Error in timer: %r\n" % (exc, ))
|
|
|
+ traceback.print_exception(*exc_info, file=sys.stderr)
|
|
|
+ finally:
|
|
|
+ del(exc_info)
|
|
|
|
|
|
def _next_entry(self):
|
|
|
with self.not_empty:
|