HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/local/lib/python3.10/test/__pycache__/test_thread.cpython-310.opt-1.pyc
o

�i."�@s�ddlZddlZddlZddlmZddlmZddlZddl	Z	ddl
Z
ddlmZdZdZ
dZe��Zdd	�ZGd
d�dej�ZGdd
�d
e�ZGdd�d�ZGdd�de�ZGdd�dej�ZGdd�dej�Zedkrte��dSdS)�N)�support)�threading_helper)�
lock_tests�
�g{�G�z�?cCs<tjrt�
t|�Wd�dS1swYdSdS)z2Helper function for printing out debugging output.N)r�verbose�_print_mutex�print)�arg�r�-/usr/local/lib/python3.10/test/test_thread.py�
verbose_prints

"��r
c@seZdZdd�ZdS)�BasicThreadTestcCsZt��|_|j��t��|_t��|_d|_d|_d|_t	�
�}|jt	jg|�R�dS�Nr)
�thread�
allocate_lock�
done_mutex�acquire�
running_mutex�random_mutex�created�running�
next_identrZthreading_setupZ
addCleanupZthreading_cleanup)�self�keyrrr�setUps



zBasicThreadTest.setUpN)�__name__�
__module__�__qualname__rrrrrrsrc@sVeZdZdd�Zdd�Zdd�Zdd�Ze�e	j
d	vd
�dd��Zd
d�Zdd�Z
dS)�ThreadRunningTestscCsv|j�.|jd7_td|j�t�|j|jf�|jd7_|jd7_Wd�dS1s4wYdS)N�zcreating task %s)rrr
r�start_new_thread�taskrr�rrrr�newtask*s"�zThreadRunningTests.newtaskcCs�|j�t��d}Wd�n1swYtd|t|d�f�t�|�td|�|j�/|jd8_|jt	krR|jdkrZ|j
��Wd�dSWd�dSWd�dS1sewYdS)N���@�task %s will run for %sus���.Aztask %s doner r)r�randomr
�round�time�sleeprrr�NUMTASKSr�release)r�ident�delayrrrr"2s�
��"�zThreadRunningTests.taskcCs^t���!tt�D]}|��q	td�|j��td�Wd�dS1s(wYdS)Nz waiting for tasks to complete...�all tasks done)r�wait_threads_exit�ranger,r$r
rr�r�irrr�test_starting_threads=s



"�z(ThreadRunningTests.test_starting_threadscCs2|�t��dd�t�d�|�t��dd�dS)Nrzinitial stack size is not 0zstack_size not reset to default)�assertEqualr�
stack_sizer#rrr�test_stack_sizeFs
z"ThreadRunningTests.test_stack_size)�nt�posixztest meant for nt and posixc	Cszt�d�Wntytd�Yntjy"|�d�Ynwd}dD]}t�|�|�t��|||�td|�q'dD]:}td|�d	|_d	|_t	�
�� tt�D]}|�
�qYtd
�|j��td�Wd�n1swwYqBt�d	�dS)Niz3caught expected ValueError setting stack_size(4096)z4platform does not support changing thread stack sizez&stack_size(%d) failed - should succeed)��rzsuccessfully set stack_size(%d))r;r<ztrying stack_size = (%d)rz!waiting for all tasks to completer0)rr7�
ValueErrorr
�errorZskipTestr6rrrr1r2r,r$rr)rZfail_msgZtssr4rrr�test_nt_and_posix_stack_sizeMs2�




��z/ThreadRunningTests.test_nt_and_posix_stack_sizecs�t��}t������g���fdd�}t���Ht�|d��s)t�t	��r"|�
t��|d����g�t�
|�fdd��}~�sQt�t	�t���rF|�
t��|�Wd�dS1sdwYdS)Ncs��d�������dS�N)�appendrr-r)�mut�startedrrr"ss
z,ThreadRunningTests.test__count.<locals>.taskrr cs
��d�Sr@)rA)�_)�donerr�<lambda>�s
z0ThreadRunningTests.test__count.<locals>.<lambda>)r�_countrrrr1r!r*r+�
POLL_SLEEPr6r-�weakref�refr�
gc_collect)rZorigr"�wrr)rErBrCr�test__countls*

�
�"�zThreadRunningTests.test__countc	s��fdd�}t���t���L}t������t�|d����Wd�n1s,wY|�t	|j
j�d�|�|j
j
|�|�|j
jd�|�|j
j�Wd�dS1s]wYdS)Ncs���td��)N�task failed)r-r=r�rCrrr"�sz:ThreadRunningTests.test_unraisable_exception.<locals>.taskrrNz&Exception ignored in thread started by)rrrZcatch_unraisable_exceptionrr1rr!r6�strZ
unraisable�	exc_valueZassertIs�object�err_msg�assertIsNotNone�
exc_traceback)rr"�cmrrOr�test_unraisable_exception�s


�
�"�z,ThreadRunningTests.test_unraisable_exceptionN)rrrr$r"r5r8�unittestZskipIf�os�namer?rMrWrrrrr(s	
rc@�eZdZdd�Zdd�ZdS)�BarriercCs.||_d|_t��|_t��|_|j��dSr)�num_threads�waitingrr�
checkin_mutex�checkout_mutexr)rr]rrr�__init__�s


zBarrier.__init__cCs�|j��|jd|_|j|jkr|jd|_|j��dS|j��|j��|jd|_|jdkr:|j��dS|j��dS)Nr r)r_rr^r]r`r-r#rrr�enter�s





z
Barrier.enterN)rrrrarbrrrrr\�sr\c@r[)�BarrierTestcCsvt���-tt�|_t|_tt�D]
}t�|j	|f�qt
d�|j��t
d�Wd�dS1s4wYdS)Nzwaiting for tasks to endz
tasks done)
rr1r\r,�barrr2rr!�task2r
rrr3rrr�test_barrier�s



"�zBarrierTest.test_barrierc	Cs�tt�D]F}|dkr
d}n|j�t��d}Wd�n1s!wYtd|t|d�f�t�|�td||f�|j�	�td|�q|j
�|jd8_|jdk}Wd�n1sewY|rs|j�
�dSdS)Nrr%r&r'ztask %s entering %sztask %s leaving barrierr )r2�NUMTRIPSrr(r
r)r*r+rdrbrrrr-)rr.r4r/�finishedrrrre�s(��

��zBarrierTest.task2N)rrrrfrerrrrrc�s
rcc@seZdZejZdS)�	LockTestsN)rrrrrZlocktyperrrrri�s
ric@s<eZdZdd�Ze�eed�d�ej	dd���Z
dd�Zd	S)
�TestForkInThreadcCst��\|_|_dSr@)rY�pipe�read_fd�write_fdr#rrrr�szTestForkInThread.setUp�forkzneed os.forkcs�d��fdd�}t���#t�||j|jf�|�t�|jd�d�t�	|j�Wd�n1s2wY|�
��tj�dd�dS)Nc	sDt����rdSzt�|�t�|d�Wt�d�dSt�d�w)N�OKr)rYrn�close�write�_exit)rlrm��pidrr�fork_thread�s
z7TestForkInThread.test_forkinthread.<locals>.fork_thread�ror)�exitcode)
rr1rr!rlrmr6rY�readrprTrZwait_process)rrurrsr�test_forkinthread�s
�
z"TestForkInThread.test_forkinthreadcCsLzt�|j�Wn	tyYnwz	t�|j�WdSty%YdSwr@)rYrprl�OSErrorrmr#rrr�tearDowns��zTestForkInThread.tearDownN)rrrrrXZ
skipUnless�hasattrrYrZreap_threadsryr{rrrrrj�srj�__main__)rYrXr(�testrZtest.supportr�_threadrr*rIrr,rgrHrrr
ZTestCaserrr\rcrirjr�mainrrrr�<module>s.u%-�