diff options
Diffstat (limited to 'wsgitools/scgi/asynchronous.py')
-rw-r--r-- | wsgitools/scgi/asynchronous.py | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/wsgitools/scgi/asynchronous.py b/wsgitools/scgi/asynchronous.py index 82dec02..75f1ff0 100644 --- a/wsgitools/scgi/asynchronous.py +++ b/wsgitools/scgi/asynchronous.py @@ -11,6 +11,13 @@ except ImportError: import StringIO as io import errno +if sys.version_info[0] >= 3: + def exc_info_for_raise(exc_info): + return exc_info[0](exc_info[1]).with_traceback(exc_info[2]) +else: + def exc_info_for_raise(exc_info): + return exc_info[0], exc_info[1], exc_info[2] + class SCGIConnection(asyncore.dispatcher): """SCGI connection class used by L{SCGIServer}.""" # connection states @@ -143,7 +150,7 @@ class SCGIConnection(asyncore.dispatcher): if exc_info: if self.outheaders == True: try: - raise exc_info[0], exc_info[1], exc_info[2] + raise exc_info_for_raise(exc_info) finally: exc_info = None assert self.outheaders != True # unsent |