�
m0h1 � �B � d Z ddlZddlZ G d� dej � Zy)zIEnhanced Thread with support for return values and exception propagation.� Nc �0 � e Zd ZdZdd�Zd� Zd� Zd� Zd� Zy) �REThreadz�Thread with return values and exception propagation.
The thread is marked as daemon thread. The entire Python program exits
when no alive non-daemon threads are left.
Nc � � |�i }t j j | |||||d�� || _ || _ || _ d| _ d| _ y)z<Initialize Thread, identical to threading.Thread.__init__().NT)�daemon)� threading�Thread�__init__�_REThread__target�_REThread__args�_REThread__kwargs�_retval�
_exception)�self�group�target�name�args�kwargss �1/usr/lib/python3/dist-packages/apport/REThread.pyr zREThread.__init__ sS � ��>��F����!�!�$��v�t�T�6�RV�!�W���
������
������� c �� � | j r- | j | j i | j ��| _ yy# t $ r$ t
rt j � | _ Y yY yw xY w)z9Run target function, identical to threading.Thread.run().N)r
r r r
�
BaseException�sys�exc_infor �r s r �runzREThread.run& |