[ Avaa Bypassed ]




Upload:

Command:

www-data@18.218.241.211: ~ $
'''Enhanced Thread with support for return values and exception propagation.'''

# Copyright (C) 2007 Canonical Ltd.
# Author: Martin Pitt <martin.pitt@ubuntu.com>
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
# Free Software Foundation; either version 2 of the License, or (at your
# option) any later version.  See http://www.gnu.org/copyleft/gpl.html for
# the full text of the license.

import threading, sys


class REThread(threading.Thread):
    '''Thread with return values and exception propagation.'''

    def __init__(self, group=None, target=None, name=None, args=(), kwargs={}):
        '''Initialize Thread, identical to threading.Thread.__init__().'''

        threading.Thread.__init__(self, group, target, name, args, kwargs)
        self.__target = target
        self.__args = args
        self.__kwargs = kwargs
        self._retval = None
        self._exception = None

    def run(self):
        '''Run target function, identical to threading.Thread.run().'''

        if self.__target:
            try:
                self._retval = self.__target(*self.__args, **self.__kwargs)
            except:
                if sys:
                    self._exception = sys.exc_info()

    def return_value(self):
        '''Return value from target function.

        This can only be called after the thread has finished, i. e. when
        is_alive() is False and did not terminate with an exception.
        '''
        assert not self.is_alive()
        assert not self._exception
        return self._retval

    def exc_info(self):
        '''Return (type, value, traceback) of the exception caught in run().'''

        return self._exception

    def exc_raise(self):
        '''Raise the exception caught in the thread.

        Do nothing if no exception was caught.
        '''
        if self._exception:
            # there is no syntax which both Python 2 and 3 parse, so we need a
            # hack using exec() here
            # Python 3:
            if sys.version > '3':
                raise self._exception[1].with_traceback(self._exception[2])
            else:
                exec('raise self._exception[0], self._exception[1], self._exception[2]')

Filemanager

Name Type Size Permission Actions
__pycache__ Folder 0755
crashdb_impl Folder 0755
REThread.py File 2.24 KB 0644
__init__.py File 1.65 KB 0644
crashdb.py File 32.56 KB 0644
fileutils.py File 17.74 KB 0644
hookutils.py File 34.82 KB 0644
packaging.py File 12.17 KB 0644
packaging_impl.py File 70.63 KB 0644
report.py File 67.57 KB 0644
sandboxutils.py File 10.99 KB 0644
ui.py File 73.69 KB 0644
user_group.py File 611 B 0644