Author: tack
Date: Sun Apr 15 18:28:37 2007
New Revision: 2622
Modified:
trunk/base/src/notifier/async.py
trunk/base/src/notifier/jobserver.py
trunk/base/src/notifier/thread.py
trunk/base/src/notifier/yieldfunc.py
Log:
Pass exc_info triplet in any exception raised asynchronously and log full
traceback in default async exception handler.
Modified: trunk/base/src/notifier/async.py
==============================================================================
--- trunk/base/src/notifier/async.py (original)
+++ trunk/base/src/notifier/async.py Sun Apr 15 18:28:37 2007
@@ -33,6 +33,8 @@
# python imports
import logging
+import traceback
+import sys
# kaa.notifier imports
from callback import Signal
@@ -81,7 +83,7 @@
done because it raised an exception.
"""
if self.exception_handler.count() == 0:
- log.error('InProgress exception: %s', e)
+ log.error('InProgress exception: %s',
''.join(traceback.format_exception(*e._exc_info)))
# store result
self.is_finished = True
self._exception = e
Modified: trunk/base/src/notifier/jobserver.py
==============================================================================
--- trunk/base/src/notifier/jobserver.py (original)
+++ trunk/base/src/notifier/jobserver.py Sun Apr 15 18:28:37 2007
@@ -177,8 +177,9 @@
job._server = None
try:
MainThreadCallback(job.finished, job._callback())()
- except:
- MainThreadCallback(job.exception, sys.exc_info()[1])()
+ except Exception, e:
+ e._exc_info = sys.exc_info()
+ MainThreadCallback(job.exception, e)()
# server stopped
log.debug('stop thread %s' % self.name)
Modified: trunk/base/src/notifier/thread.py
==============================================================================
--- trunk/base/src/notifier/thread.py (original)
+++ trunk/base/src/notifier/thread.py Sun Apr 15 18:28:37 2007
@@ -240,5 +240,6 @@
except Exception, e:
log.exception('mainthread callback')
# set exception in callback
+ e._exc_info = sys.exc_info()
callback._set_exception(e)
return True
Modified: trunk/base/src/notifier/yieldfunc.py
==============================================================================
--- trunk/base/src/notifier/yieldfunc.py (original)
+++ trunk/base/src/notifier/yieldfunc.py Sun Apr 15 18:28:37 2007
@@ -225,6 +225,7 @@
result = None
except Exception, e:
log.exception('YieldFunction')
+ e._exc_info = sys.exc_info()
self.exception(e)
return False
if result == YieldContinue:
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Freevo-cvslog mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog