403Webshell
Server IP : 217.160.0.244  /  Your IP : 216.73.217.138
Web Server : Apache
System : Linux infong-eu155 4.4.400-icpu-108 #2 SMP Wed Feb 11 11:51:01 UTC 2026 x86_64
User : u100174116 ( 6746176)
PHP Version : 8.5.10
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /lib/python3/dist-packages/breezy/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3/dist-packages/breezy/__pycache__/cethread.cpython-313.pyc
�

p��g,��R�SSKrSSKrSSKJrJrJr "SS\R5rg)�N)�Callable�Optional�Unionc�^�\rSrSr%Sr\\\/\4\	S'U4Sjr
SrSrS\
\\/\4S\\\\\44S	jrU4S
jrSU4SjjrSrS
rU=r$)�CatchingExceptionThread�z�A thread that keeps track of exceptions.

If an exception occurs during the thread execution, it's caught and
re-raised when the thread is joined().
�ignored_exceptionsc�>�URS5n[TU]"U0UD6 UR
U5 SUlSUl[R"5Ul
g![a [R"5nNkf=f)N�
sync_event)�pop�KeyError�	threading�Event�super�__init__�set_sync_event�	exceptionr	�Lock�lock)�self�args�kwargsr�	__class__s    ��1/usr/lib/python3/dist-packages/breezy/cethread.pyr� CatchingExceptionThread.__init__sr���
	+����L�1�J�	���$�)�&�)����J�'����"&����N�N�$��	���	+�"���*�J�	+�s�A�B�?Bc��Xlg)a�Set the ``sync_event`` event used to synchronize exception catching.

When the thread uses an event to synchronize itself with another thread
(setting it when the other thread can wake up from a ``wait`` call),
the event must be set after catching an exception or the other thread
will hang.

Some threads require multiple events and should set the relevant one
when appropriate.

Note that the event should be initially cleared so the caller can
wait() on him and be released when the thread set the event.

Also note that the thread can use multiple events, setting them as it
progress, while the caller can chose to wait on any of them. What
matters is that there is always one event set so that the caller is
always released when an exception is caught. Re-using the same event is
therefore risky as the thread itself has no idea about which event the
caller is waiting on. If the caller has already been released then a
cleared event won't guarantee that the caller is still waiting on it.
N)r)r�events  rr�&CatchingExceptionThread.set_sync_event/s	��, ��c�H�URnURR5 URU5 UR5 URR
5 g![a URU5 ef=f!URR
5 f=f)aeSwitch to a new ``sync_event`` and set the current one.

Using this method protects against race conditions while setting a new
``sync_event``.

Note that this allows a caller to wait either on the old or the new
event depending on whether it wants a fine control on what is happening
inside a thread.

:param new: The event that will become ``sync_event``
N)rr�acquirer�
BaseException�set�release)r�new�curs   r�switch_and_set�&CatchingExceptionThread.switch_and_setGs����o�o���	�	����	 �
��#�#�C�(�
�G�G�I��I�I�����!�
��#�#�C�(��	
��
�I�I����s�A%�B�%B�B�B!�ignoredNc�^�TcSUlg[T[[45(aU4SjUlg[T[5(aU4SjUlgTUlg)a�Declare which exceptions will be ignored.

:param ignored: Can be either:

   - None: all exceptions will be raised,
   - an exception class: the instances of this class will be ignored,
   - a tuple of exception classes: the instances of any class of the
     list will be ignored,
   - a callable: that will be passed the exception object
     and should return True if the exception should be ignored
Nc�>�[UT5$�N)�
isinstance��er)s �r�<lambda>�@CatchingExceptionThread.set_ignored_exceptions.<locals>.<lambda>ys���
�1�g�0Frc�.>�[U[T55$r,)r-�tupler.s �rr0r1{s���
�1�e�G�n�0Mr)r	r-�	Exceptionr3�list)rr)s `r�set_ignored_exceptions�.CatchingExceptionThread.set_ignored_exceptionsesI���"�?�&*�D�#�
��)�U�!3�
4�
4�&F�D�#�
���
&�
&�&M�D�#�&-�D�#rc� >�URR5 [TU]
5 URR5 g![a [
R"5UlNAf=f!URR5 f=f)z.Overrides Thread.run to capture any exception.N)	r�clearr�runr"�sys�exc_inforr#)rrs �rr:�CatchingExceptionThread.runsi���������	"�
0����
�

�O�O���!��	!�
0�!$������
0��
�O�O���!�s#�A�$A.�+A1�-A.�.A1�1B
c�>�[TU]U5 URb<URup#nSUlURbURU5(dUegg)z�Overrides Thread.join to raise any exception caught.

Calling join(timeout=0) will raise the caught exception or return None
if the thread is still alive.
N)r�joinrr	)r�timeout�	exc_class�	exc_value�exc_tbrs     �rr?�CatchingExceptionThread.join�sb���	���W���>�>�%�+/�>�>�(�I�&�!�D�N��&�&�.�d�6M�6M��7�7� ��	7�&rc�"�URSS9 g)zIRaise the caught exception.

This does nothing if no exception occurred.
r)r@N)r?)rs r�pending_exception�)CatchingExceptionThread.pending_exception�s��
	
�	�	�!�	�r)rr	rrr,)�__name__�
__module__�__qualname__�__firstlineno__�__doc__rrr4�bool�__annotations__rrr'rr5�typer6r:r?rF�__static_attributes__�
__classcell__)rs@rrrs{����!��9�+�t�*;�!<�=�=�%�  �0 �<.���i�[�$�&�'��t�D��O�/D�d�9�o�U�
�.�4
"� � �rr)r;r�typingrrr�Threadr�rr�<module>rUs'��"��,�,�J�i�.�.�Jr

Youez - 2016 - github.com/yon3zu
LinuXploit