File: D:/Python311/Lib/test/__pycache__/test_thread.cpython-311.opt-2.pyc
�
��VcV# � � � d dl Z d dlZd dlZd dlmZ d dlmZ d dlZd dl Z d dl
Z
d dlmZ ej d�� � dZ
dZd Z ej � � Zd
� Z G d� dej � � Z G d
� de� � Z G d� d� � Z G d� de� � Z G d� dej � � Z G d� dej � � Zedk r ej � � dS dS )� N)�support)�threading_helper)�
lock_testsT)�module�
� g{�G�z�?c � � t j r1t 5 t | � � d d d � � d S # 1 swxY w Y d S d S �N)r �verbose�_print_mutex�print)�args �$D:\Python311\Lib\test\test_thread.py�
verbose_printr s� � �<��� �
� � ��#�J�J�J� � � � � � � � � � � � ���� � � � � � �� s �2�6�6c � � e Zd Zd� ZdS )�BasicThreadTestc �H � t j � � | _ | j � � � t j � � | _ t j � � | _ d| _ d| _ d| _ t j
� � } | j t j g|�R � d S �Nr )
�thread�
allocate_lock�
done_mutex�acquire�
running_mutex�random_mutex�created�running�
next_identr �threading_setup�
addCleanup�threading_cleanup)�self�keys r �setUpzBasicThreadTest.setUp s� � � �.�0�0�������!�!�!�#�1�3�3���"�0�2�2�������������.�0�0�����(�:�A�S�A�A�A�A�A�A� N)�__name__�
__module__�__qualname__r# � r$ r r r s( � � � � � �
B�
B�
B�
B�
Br$ r c �t � e Zd Zd� Zd� Zd� Zd� Z ej e j
dvd� � d� � � Zd� Zd � Z
d
S )�ThreadRunningTestsc � � | j 5 | xj dz
c_ t d| j z � � t j | j | j f� � | xj dz
c_ | xj dz
c_ d d d � � d S # 1 swxY w Y d S )N� zcreating task %s)r r r r �start_new_thread�taskr r �r! s r �newtaskzThreadRunningTests.newtask, s� � �
�
� � ��O�O�q� �O�O��,�t��>�?�?�?��#�D�I���/A�B�B�B��L�L�A��L�L��L�L�A��L�L� � � � � � � � � � � � ���� � � � � � s �A(A=�=B�Bc �� � | j 5 t j � � dz }d d d � � n# 1 swxY w Y t d|�dt |dz � � �d�� � t j |� � t d|z � � | j 5 | xj dz c_ | j t k r$| j dk r| j
� � � d d d � � d S # 1 swxY w Y d S ) N� ��@�task � will run for � ��.A�usztask %s doner, r )r �randomr �round�time�sleepr r r �NUMTASKSr �release)r! �ident�delays r r. zThreadRunningTests.task4 sl � �
�
� .� .��M�O�O�g�-�E� .� .� .� .� .� .� .� .� .� .� .���� .� .� .� .��
�U�U�U�E�%��)�<L�<L�<L�<L�M�N�N�N��
�5�����n�u�,�-�-�-�
�
� *� *��L�L�A��L�L��|�x�'�
*�D�L�A�,=�
*���'�'�)�)�)� *� *� *� *� *� *� *� *� *� *� *� *���� *� *� *� *� *� *s �+�/�/� AC�C�"Cc �" � t j � � 5 t t � � D ]}| � � � �t d� � | j � � � t d� � d d d � � d S # 1 swxY w Y d S )Nz waiting for tasks to complete...�all tasks done)r �wait_threads_exit�ranger; r0 r r r �r! �is r �test_starting_threadsz(ThreadRunningTests.test_starting_threads? s� � �
�
/�
1�
1� ,� ,��8�_�_�
�
����������<�=�=�=��O�#�#�%�%�%��*�+�+�+�
,� ,� ,� ,� ,� ,� ,� ,� ,� ,� ,� ,���� ,� ,� ,� ,� ,� ,s �A#B�B�Bc �� � | � t j � � dd� � t j d� � | � t j � � dd� � d S )Nr zinitial stack size is not 0zstack_size not reset to default)�assertEqualr �
stack_sizer/ s r �test_stack_sizez"ThreadRunningTests.test_stack_sizeH s] � �����*�,�,�a�1N�O�O�O���!��������*�,�,�a�1R�S�S�S�S�Sr$ )�nt�posixztest meant for nt and posixc � � t j d� � nD# t $ r t d� � Y n)t j $ r | � d� � Y nw xY wd}dD ]S}t j |� � | � t j � � |||z � � t d|z � � �TdD ]�}t d|z � � d | _ d | _ t j
� � 5 t t � � D ]}| �
� � �t d
� � | j � � � t d� � d d d � � n# 1 swxY w Y ��t j d � � d S )Ni z3caught expected ValueError setting stack_size(4096)z4platform does not support changing thread stack sizez&stack_size(%d) failed - should succeed)� � r zsuccessfully set stack_size(%d))rM rN ztrying stack_size = (%d)r z!waiting for all tasks to completer@ )r rH �
ValueErrorr �error�skipTestrG r r r rA rB r; r0 r r )r! �fail_msg�tssrD s r �test_nt_and_posix_stack_sizez/ThreadRunningTests.test_nt_and_posix_stack_sizeO s� � � "���d�#�#�#�#��� 0� 0� 0�� /�
0�
0�
0�
0�
0��|� "� "� "��M�M� !�
"�
"�
"�
"�
"� "���� <��(� C� C�C���c�"�"�"����V�.�0�0�#�x�#�~�F�F�F��;�c�A�B�B�B�B�%�
0�
0�C��4�s�:�;�;�;��D�O��D�L�!�3�5�5�
0�
0��x��� #� #�A��L�L�N�N�N�N��A�B�B�B���'�'�)�)�)��.�/�/�/�
0�
0�
0�
0�
0�
0�
0�
0�
0�
0�
0����
0�
0�
0�
0�� ��!�����s'