HEX
Server: Microsoft-IIS/10.0
System: Windows NT ITPWINWEBSVR22 10.0 build 20348 (Windows Server 2022) AMD64
User: www.conferencesearch.co.uk (0)
PHP: 8.3.30
Disabled: NONE
Upload Files
File: D:/Python311/Lib/test/support/__pycache__/threading_helper.cpython-311.opt-2.pyc
�

��Vc<����ddlZddlZddlZddlZddlZddlZddlZddlmZd�Z	d�Z
d�Zejdd���Z
dd�Zejdd���ZGd	�d
��Zdefd�Ze��Zd
d�d�ZdS)�N)�supportc�d�tj��tj���fS�N)�_thread�_count�	threading�	_dangling�copy���1D:\Python311\Lib\test\support\threading_helper.py�threading_setuprs$���>���Y�0�5�5�7�7�7�7rc��d}t|��D]�}tj��tjf}||krdS|srdt
_|d}tjd|d|dz
�d|d�dt|���d���|D]}tjd	|�����d}d}tj
d
��tj����dS)N�dT�z&threading_cleanup() failed to cleanup rz threads (count: z, dangling: �)zDangling thread: �{�G�z�?)�rangerrrr	r�environment_altered�
print_warning�len�time�sleep�
gc_collect)�original_values�
_MAX_COUNT�count�values�dangling_threads�threads      r
�threading_cleanupr!s8���J��z�"�"������!�!�9�#6�6���_�$�	��E�E��	$�*.�G�'�%�a�y���!�#H�%+�A�Y���1C�%C�#H�#H�-3�A�Y�#H�#H�03�3C�/D�/D�#H�#H�#H�
I�
I�
I�+�
F�
F���%�&D�&�&D�&D�E�E�E�E� $�����
�4����������+�rc�H��	tj����fd���}|S)Nc�Z��t��}	�|�t|�S#t|�wxYwr)rr!)�args�key�funcs  �r
�	decoratorzreap_threads.<locals>.decorator;s<�������	$��4��;��s�#�#�#���s�#�#�#���s��*)�	functools�wraps)r&r's` r
�reap_threadsr*7s@�����_�T���$�$�$�$���$��rc#�K�	|�tj}tj��}	dV�t	j��}||z}	tj��}||krdSt	j��|kr8t	j��|z
}d||z
�d|d�d|�d|�d�	}t
|���t	jd��tj����#t	j��}||z}	tj��}||krnwt	j��|kr8t	j��|z
}d||z
�d|d�d|�d|�d�	}t
|���t	jd��tj����wxYw)	NTz!wait_threads() failed to cleanup z threads after �.1fz seconds (count: z
, old count: rr)	r�
SHORT_TIMEOUTrrr�	monotonic�AssertionErrorrr)�timeout�	old_count�
start_time�deadliner�dt�msgs       r
�wait_threads_exitr6Es������(��'���� � �I�!�
�����^�%�%�
���'��	!��N�$�$�E��	�!�
����~���(�*�
*��^�%�%�
�2��C�5�9�;L�C�C�(*�9�C�C�"'�C�C�6?�C�C�C��%�S�)�)�)��J�u������ � � �	!���^�%�%�
���'��	!��N�$�$�E��	�!�
���~���(�*�
*��^�%�%�
�2��C�5�9�;L�C�C�(*�9�C�C�"'�C�C�6?�C�C�C��%�S�)�)�)��J�u������ � � �	!�	!�	!�	!�	!s�C�B,Fc��	|�tj}|�|��|���rd|d�d�}t	|���dS)Nzfailed to join the thread in r,z seconds)rr-�join�is_aliver/)r r0r5s   r
�join_threadr:jsh����(��'��
�K�K�����
�����"�C�g�C�C�C�C���S�!�!�!�"�"rc#�bK�ddl}t|��}g}		|D]+}|���|�|���,n@#tjr.t
dt|��t|��fz���xYwdV�	|r
|��tj	��}tdd��D]�}|dz
}|D]9}|�t|tj	��z
d�����:d�|D��}|sn.tjr!t
dt|��|fz����d	�|D��}|r>|�
tj��t!d
t|��z���dS#d	�|D��}|r>|�
tj��t!d
t|��z���wxYw#	|r
|��tj	��}tdd��D]�}|dz
}|D]9}|�t|tj	��z
d�����:d�|D��}|sn.tjr!t
dt|��|fz����d	�|D��}|r>|�
tj��t!d
t|��z���nQ#d	�|D��}|r>|�
tj��t!d
t|��z���wxYwwxYw)Nrz/Can't start %d threads, only %d threads startedr��<rc�:�g|]}|����|��Sr�r9��.0�ts  r
�
<listcomp>z!start_threads.<locals>.<listcomp>�s%��>�>�>�������>�1�>�>�>rz7Unable to join %d threads during a period of %d minutesc�:�g|]}|����|��Srr?r@s  r
rCz!start_threads.<locals>.<listcomp>�s%��:�:�:�Q�Q�Z�Z�\�\�:�q�:�:�:rzUnable to join %d threads)�faulthandler�list�start�appendr�verbose�printrrr.rr8�max�dump_traceback�sys�stdoutr/)�threads�unlockrE�startedrB�endtimer0s       r
�
start_threadsrSvs����������7�m�m�G��G�Q�	��
"�
"�����	�	�	����q�!�!�!�!�
"��	���
4��G��7�|�|�S��\�\�2�3�4�4�4�����
����	Q��
�������n�&�&�G� ��B�<�<�	
B�	
B���2�
�� �B�B�A��F�F�3�w���)9�)9�9�4�@�@�A�A�A�A�>�>�g�>�>�>�����E��?�B��'�*-�g�,�,��)@�A�B�B�B��;�:�'�:�:�:�G��
Q��+�+�C�J�7�7�7�$�%@�3�w�<�<�%O�P�P�P�
Q�
Q��;�:�'�:�:�:�G��
Q��+�+�C�J�7�7�7�$�%@�3�w�<�<�%O�P�P�P�P�P�P�P��%	Q��
�������n�&�&�G� ��B�<�<�	
B�	
B���2�
�� �B�B�A��F�F�3�w���)9�)9�9�4�@�@�A�A�A�A�>�>�g�>�>�>�����E��?�B��'�*-�g�,�,��)@�A�B�B�B��;�:�'�:�:�:�G��
Q��+�+�C�J�7�7�7�$�%@�3�w�<�<�%O�P�P�P�
Q��;�:�'�:�:�:�G��
Q��+�+�C�J�7�7�7�$�%@�3�w�<�<�%O�P�P�P�P�P�P�P�P�P�P�PsF�.A	�G�	=B�G�B0F�AG�L.�B0K�A
L.�AL*�*L.c�(�eZdZ	d�Zd�Zd�Zd�ZdS)�catch_threading_exceptionc�L�d|_d|_d|_d|_d|_dSr)�exc_type�	exc_value�
exc_tracebackr �	_old_hook��selfs r
�__init__z"catch_threading_exception.__init__�s*����
����!����������rc�f�|j|_|j|_|j|_|j|_dSr)rWrXrYr )r\r$s  r
�_hookzcatch_threading_exception._hook�s,���
��
�����!�/����k����rc�J�tj|_|jt_|Sr)r�
excepthookrZr_r[s r
�	__enter__z#catch_threading_exception.__enter__�s��"�-���#�z�	���rc�8�|jt_|`|`|`|`dSr)rZrrarWrXrYr )r\�exc_infos  r
�__exit__z"catch_threading_exception.__exit__�s%��#�~�	���M��N����K�K�KrN)�__name__�
__module__�__qualname__r]r_rbrerrr
rUrU�sU�������<���"�"�"����
����rrU�returnc�n�	tjdkrtjjStjdkrdSdS)N�
emscripten�wasiFT)rM�platform�_emscripten_info�pthreadsrrr
�_can_start_threadrp�s?��	��|�|�#���#�,�,�	���	���u��trF)�modulec�z�	d}|rtstj|���dStjt|��S)Nzrequires threading support)�can_start_thread�unittest�SkipTest�
skipUnless)rqr5s  r
�requires_working_threadingrw�sO���'�C�
�:��	)��#�C�(�(�(�	)�	)��"�#3�S�9�9�9rr)r�
contextlibr(rMrrrt�testrrr!r*�contextmanagerr6r:rSrU�boolrprsrwrrr
�<module>r|si��������������
�
�
�
�������������������8�8�8����6�����!!�!!�!!���!!�H	"�	"�	"�	"���"Q�"Q�"Q���"Q�J6�6�6�6�6�6�6�6�r�4�����&%�$�&�&��).�
:�
:�
:�
:�
:�
:�
:r