Uname:Linux ip-10-0-5-176 6.8.0-1057-aws #60~22.04.1-Ubuntu SMP Wed May 27 08:16:59 UTC 2026 x86_64

403WebShell
403Webshell
Server IP : 3.111.61.48  /  Your IP : 216.73.216.67
Web Server : Apache
System : Linux ip-10-0-5-176 6.8.0-1057-aws #60~22.04.1-Ubuntu SMP Wed May 27 08:16:59 UTC 2026 x86_64
User : ubuntu ( 1000)
PHP Version : 8.2.31
Disable Function : exec,passthru,shell_exec,system
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/lib/python3.10/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/lib/python3.10/test/__pycache__/lock_tests.cpython-310.pyc
o

�9j�x�@s4dZddlZddlZddlZddlZddlmZmZddlZddl	Z	ddl
Z
ddlmZddl
mZe	�eed�d�Zdd	�ZGd
d�de�ZGdd
�d
e	j�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZdS) z/
Various tests for synchronization primitives.
�N)�start_new_thread�TIMEOUT_MAX)�support)�threading_helper�forkz9platform doesn't support fork (no _at_fork_reinit method)cCst�d�dS)N�{�G�z�?)�time�sleep�r
r
�&/usr/lib/python3.10/test/lock_tests.py�_waitsrc@s2eZdZdZddd�Zdd�Zdd�Zd	d
�ZdS)
�Bunchz
    A bunch of threads.
    Fcsp��_|�_g�_g�_|�_t���_�j����fdd�}zt	|�D]}t
|d�q&WdSd�_�)z�
        Construct a bunch of `n` threads running the same function `f`.
        If `wait_before_exit` is True, the threads won't terminate until
        do_finish() is called.
        c	sdt��}�j�|�z��W�j�|��js t��jrdSdS�j�|��js1t��jr+w�N)�	threading�	get_ident�started�append�finished�	_can_exitr)�tid��f�selfr
r�task-s���zBunch.__init__.<locals>.taskr
TN)r�nrrrr�wait_threads_exit�wait_thread�	__enter__�ranger)rrr�wait_before_exitr�ir
rr�__init__s


�zBunch.__init__cCs.t|j�|jkrt�t|j�|jksdSdSr)�lenrrr�rr
r
r�wait_for_started>s�zBunch.wait_for_startedcCs:t|j�|jkrt�t|j�|jks|j�ddd�dSr)r"rrrr�__exit__r#r
r
r�wait_for_finishedBs�zBunch.wait_for_finishedcCs
d|_dS�NT)rr#r
r
r�	do_finishHs
zBunch.do_finishN)F)�__name__�
__module__�__qualname__�__doc__r!r$r&r(r
r
r
rr
s
r
c@s$eZdZdd�Zdd�Zdd�ZdS)�BaseTestCasecCst��|_dSr)r�threading_setup�_threadsr#r
r
r�setUpM�zBaseTestCase.setUpcCstj|j�t��dSr)r�threading_cleanupr/r�
reap_childrenr#r
r
r�tearDownPszBaseTestCase.tearDowncCs$|�||d�|�||d�dS)Ng333333�?g$@)�assertGreaterEqual�
assertLess)r�actual�expectedr
r
r�
assertTimeoutTszBaseTestCase.assertTimeoutN)r)r*r+r0r4r9r
r
r
rr-Lsr-c@sxeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�ZdS)�
BaseLockTestsz;
    Tests for both recursive and non-recursive locks.
    cCs|��}~dSr)�locktype�r�lockr
r
r�test_constructorbszBaseLockTests.test_constructorcCs|��}|�t|�d�~dS)Nz<unlocked .* object (.*)?at .*>)r;�assertRegex�reprr<r
r
r�	test_reprfszBaseLockTests.test_reprcCs&|��}|��|�t|�d�~dS)Nz<locked .* object (.*)?at .*>)r;�acquirer?r@r<r
r
r�test_locked_reprkszBaseLockTests.test_locked_reprcC�|��}|��~dSr)r;rBr<r
r
r�test_acquire_destroyq�z"BaseLockTests.test_acquire_destroycCs|��}|��|��~dSr�r;rB�releaser<r
r
r�test_acquire_releasevsz"BaseLockTests.test_acquire_releasecCs$|��}|�|�d��|��dS�NF)r;�
assertTruerBrHr<r
r
r�test_try_acquire|szBaseLockTests.test_try_acquirecsJ|������g���fdd�}t|d���|��d����dS)Ncs����d��dSrJ�rrBr
�r=�resultr
rr�sz3BaseLockTests.test_try_acquire_contended.<locals>.f�r)r;rBr
r&�assertFalserH�rrr
rNr�test_try_acquire_contended�sz(BaseLockTests.test_try_acquire_contendedcsp|������d}�fdd�}t||�}|��t�|�t|j�d����|�	�|�t|j�|�dS)N�c�������dSr�rBrHr
�r=r
rr��z/BaseLockTests.test_acquire_contended.<locals>.fr)
r;rBr
r$r�assertEqualr"rrHr&�r�Nr�br
rWr�test_acquire_contended�s
z$BaseLockTests.test_acquire_contendedcsV|����fdd�}d�fdd�	}|�t|d���|�t|t�t|d���dS)NcrUrrVr
rWr
rr�rXz"BaseLockTests.test_with.<locals>.fcs6��|dur	|�Wd�dS1swYdSrr
��errrWr
r�_with�s
�"�z&BaseLockTests.test_with.<locals>._withrPr)r;r
r&�assertRaises�	TypeError)rrr`r
rWr�	test_with�szBaseLockTests.test_withcsd|����fdd�}tt���}t|d���tt���|kr0t�d�|�|tt����dSdS)NcrUrrVr
rWr
rr�rXz)BaseLockTests.test_thread_leak.<locals>.f�g�������?)	r;r"r�	enumerater
r&rr	rY)rrrr
rWr�test_thread_leak�s
�zBaseLockTests.test_thread_leakcs�|���|�t�jdd�|jt�jdd�|jt�jdd�|jt�jtdd��jtd����t��}|�	�jdd��t��}|�
||d�g���fdd�}t|d���|�
�d	�|��dd
�dS)NFrPi������timeoutg}Ô%�I�TrTcs4t��}���jdd��t��}��||�dS)N��?rg)r�	monotonicrrB)�t1�t2�r=�resultsr
rr�sz%BaseLockTests.test_timeout.<locals>.frri)r;ra�
ValueErrorrB�
OverflowErrorrrHrrjrKr6r
r&rQr9)rrkrlrr
rmr�test_timeout�s zBaseLockTests.test_timeoutcCs"|��}t�|�}|�|��dSr)r;�weakref�ref�assertIsNotNone�rr=rsr
r
r�test_weakref_exists�s
z!BaseLockTests.test_weakref_existscCs,|��}t�|�}~t��|�|��dSr)r;rrrs�gc�collect�assertIsNonerur
r
r�test_weakref_deleted�s

z"BaseLockTests.test_weakref_deletedN)r)r*r+r,r>rArCrErIrLrSr]rcrfrqrvrzr
r
r
rr:]s
r:c@s4eZdZdZdd�Zdd�Zdd�Zedd	��Zd
S)�	LockTestszn
    Tests for non-recursive, weak locks
    (which can be acquired and released from different threads).
    cs�|���g���fdd�}t���Ct|d�t��dkr&t�t��dkst�|�t��d����t��dkrDt�t��dks;|�t��d�Wd�dS1sWwYdS)Ncs(�����d������d�dSr�rBrr
�r=�phaser
rr��
z#LockTests.test_reacquire.<locals>.fr
rrP�)r;rrrr"rrYrHrRr
r}r�test_reacquire�s 

��"�zLockTests.test_reacquirecsB|�������fdd�}t|d�}|��������dS)Nc����dSr)rHr
rWr
rr�z*LockTests.test_different_thread.<locals>.frP)r;rBr
r&rH�rrr\r
rWr�test_different_threads
zLockTests.test_different_threadcCsN|��}|��|�|jdd��|��|�|���|�|jdd��dS)NrrgF)�blocking)r;rBrQrH�lockedrKr<r
r
r�test_state_after_timeoutsz"LockTests.test_state_after_timeoutcCsDdd�}|��}|��||�|��}|��|��||�dS)NcSs|��|��dSrrVrWr
r
r�use_locksz/LockTests.test_at_fork_reinit.<locals>.use_lock)r;�_at_fork_reinitrB)rr�r=�lock2r
r
r�test_at_fork_reinitszLockTests.test_at_fork_reinitN)	r)r*r+r,r�r�r��
requires_forkr�r
r
r
rr{�s
r{c@s8eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�ZdS)
�
RLockTestsz$
    Tests for recursive locks.
    cCs<|��}|��|��|��|��|��|��dSrrGr<r
r
rr�-szRLockTests.test_reacquirecCsX|��}|�t|j�|��|��|��|��|��|��|�t|j�dSr)r;ra�RuntimeErrorrHrBr<r
r
r�test_release_unacquired6�z"RLockTests.test_release_unacquiredcCsX|��}|�t|j�|��|��|��|��|��|��|�t|j�dSr)r;rar��
_release_saverBrHr<r
r
r�test_release_save_unacquiredBr�z'RLockTests.test_release_save_unacquiredcsR|����fdd�}t|dd�}z
|�t�j�W|��n|��w|��dS)Ncr�r)rBr
rWr
rrQr�z+RLockTests.test_different_thread.<locals>.frPT)r;r
rar�rHr(r&r�r
rWrr�Nsz RLockTests.test_different_threadcs�|���|��������|��������|�����g���fdd�}t|d���|��d����|��������|�����dS)Ncs������dSr)r�	_is_ownedr
rNr
rrbsz$RLockTests.test__is_owned.<locals>.frPr)r;rQr�rBrKr
r&rHrRr
rNr�test__is_ownedZszRLockTests.test__is_ownedN)	r)r*r+r,r�r�r�r�r�r
r
r
rr�)s	r�c@sDeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Ze	dd
��Z
dS)�
EventTestsz"
    Tests for Event objects.
    cCsr|��}|�|���|��|�|���|��|�|���|��|�|���|��|�|���dSr)�	eventtyperQ�is_set�setrK�clear�r�evtr
r
r�test_is_setqszEventTests.test_is_setcs|d}g�g����fdd�}t||�}|��t�|�t��d����|��|��dg|�|��dg|�dS)NrTcs ������������dSr�r�waitr
�r��results1�results2r
rr�sz#EventTests._check_notify.<locals>.frT)r
r$rrYr"r�r&)rr�r[rr\r
r�r�
_check_notify}s
zEventTests._check_notifycCs0|��}|�|�|��|��|�|�dSr)r�r�r�r�r�r
r
r�test_notify�s

zEventTests.test_notifycs�|���g�g�d}���fdd�}t||���|��dg|��D]\}}|�|�|�|d�q$g�g����t||���|��dg|��D]	\}}|�|�qNdS)NrTcs@����d��t��}��d�}t��}��|||f�dS)Ngri)rr�rrj)rk�rrlr�r
rr�s

z"EventTests.test_timeout.<locals>.fFriT)r�r
r&rYrQr9r�rK)rr[rr��dtr
r�rrq�s$
�zEventTests.test_timeoutcsn|���g�d�d}���fdd�}t||�}|��t���������|��|��dg|�dS)Ng�?rTcs�����d��dS�N�r�r
�r�rnrhr
rr��z(EventTests.test_set_and_clear.<locals>.fT)	r�r
r$rr	r�r�r&rYrZr
r�r�test_set_and_clear�s

zEventTests.test_set_and_clearcCs�|��}|j�|�|j�d��Wd�n1swY|��|j�|�|j�d��Wd�dS1s<wYdSrJ)r��_condrQrBr�r�r
r
rr��s�"�zEventTests.test_at_fork_reinitN)r)r*r+r,r�r�r�rqr�r�r�r
r
r
rr�lsr�c@sPeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�ZdS)�ConditionTestsz(
    Tests for condition variables.
    cCs�|��}|��|��|��|��t��}|�|�}|��|�|�d��|��|�|�d��|�|�d��|��|�|�|�d��Wd�dS1sWwYdSrJ)�condtyperBrHr�LockrQrK)r�condr=r
r
r�test_acquire�s 
"�zConditionTests.test_acquirecC�|��}|�t|j�dSr)r�rar�r��rr�r
r
r�test_unacquired_wait��z#ConditionTests.test_unacquired_waitcCr�r)r�rar��notifyr�r
r
r�test_unacquired_notify�r�z%ConditionTests.test_unacquired_notifycsd}g�g�g�d������fdd�}t||�}|��t��dkr,t�t��dks#���|��g������d�t�d����t��dkrWt�t��dksN|��dgd�|��g�t��dkrut�t��dksl�����d�t�d����t��t��d	kr�t�t��t��d	ks�|��dgdd
gd�|��d
gd�t��dkr�t�t��dks������	�t�d����t��dkr�t�t��dks�|��dgdd
gd�|��d
gddgd�|�
�dS)NrTrcsd����������}�����|�f�����������}�����|�f�dSr)rBrr�rH�rO�r��	phase_num�readyr�r�r
rr�s

z'ConditionTests._check_notify.<locals>.f�rP)TrPr��)Tr�)Tr�)r
r$r"rr�rYrBr�rH�
notify_allr&)rr�r[rr\r
r�rr��sd
�
��
���zConditionTests._check_notifycCs |��}|�|�|�|�dSr)r�r�r�r
r
rr�5s
zConditionTests.test_notifycsd|���g�d}��fdd�}t||���|�t��|��D]\}}|�|d�|�|�q dS)NrTcs@���t��}��d�}t��}�����|||f�dS)Nri)rBrrjr�rHr)rkrOrl�r�rnr
rr?s
z&ConditionTests.test_timeout.<locals>.fri)r�r
r&rYr"r9rQ)rr[rr�rOr
r�rrq;s�zConditionTests.test_timeoutc	s�����d����fdd�}t|d�}|��td�D]!}t�d����d7����Wd�n1s7wYq|��dS)NrcsR�����fdd��}��|����d�Wd�dS1s"wYdS)Nc��dkSr�r
r
��stater
r�<lambda>V�z8ConditionTests.test_waitfor.<locals>.f.<locals>.<lambda>r�)�wait_forrKrYr��r�rr�r
rrTs

"�z&ConditionTests.test_waitfor.<locals>.frPr�r)r�r
r$rrr	r�r&�rrr\r r
r�r�test_waitforQs


��zConditionTests.test_waitforc	s�����d�g�����fdd�}t|d�}|��td�D]!}t�d����d7����Wd�n1s:wYq|����t	��d�dS)Nrcst��.t��}�j�fdd�dd�}t��|}��|���|d���d�Wd�dS1s3wYdS)Ncr�r�r
r
r�r
rr�ir�z@ConditionTests.test_waitfor_timeout.<locals>.f.<locals>.<lambda>g�������?rg)rrjr�rQr9r)r�rO�r�rr��successr
rrfs
"�z.ConditionTests.test_waitfor_timeout.<locals>.frPr�r)
r�r
r$rrr	r�r&rYr"r�r
r�r�test_waitfor_timeoutbs


��z#ConditionTests.test_waitfor_timeoutN)r)r*r+r,r�r�r�r�r�rqr�r�r
r
r
rr��sJr�c@s`eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�Zdd�Z
dS)�BaseSemaphoreTestszB
    Common tests for {bounded, unbounded} semaphore objects.
    cCs,|jt|jdd�|jt|jtjd�dS)N���)�value)raro�semtype�sys�maxsizer#r
r
rr>sz#BaseSemaphoreTests.test_constructorcCsH|�d�}|��|��|�d�}|��|��|��|��dS)NrPr�)r�rBrH�r�semr
r
rr��s

zBaseSemaphoreTests.test_acquirecCrDr)r�rBr�r
r
rrE�rFz'BaseSemaphoreTests.test_acquire_destroycs�|�d�����d}g�g�g�d������fdd�}t|d�}|��t��t��dkr=t�t��t��dks0|���dgd�d�td�D]}���qNt��t��dkrlt�t��t��dks_|�t	���dgddgd�d	�td�D]}���q�t��t��d
kr�t�t��t��d
ks�|�t	���dgddgdd	gd�|�
��d�����|��|��dgd
�dS)N��
rcs4��������������������dSrrMr
�r�r�r�r��sem_resultsr
rr�s
z4BaseSemaphoreTests.test_acquire_contended.<locals>.f�rP�
r��FT�)r�rBr
r$r"rrYrrH�sortedrQr&)rr[rr\r r
r�rr]�s@

�
�$
�.z)BaseSemaphoreTests.test_acquire_contendedcst|�d�����g�g�d�����fdd�}t|d�}|��t��t��dkr8t�t��t��dks+|���dgd�d���d�t��t��dkrat�t��t��dksT|�t���dgddgd�d	���d�t��t��d
kr�t�t��t��d
ks�|�t���dgddgdd	gd�|�	��d�����|�
�dS)Nr�rcs(��������������dSrr|r
�r�r�r�r�r
rr�rz/BaseSemaphoreTests.test_multirelease.<locals>.fr�r�rPr�r�r�F)r�rBr
r$r"rrYrHr�rQr&r�r
r�r�test_multirelease�s6

�
�$
�.z$BaseSemaphoreTests.test_multireleasecCsV|�d�}|�|�d��|�|�d��|�|�d��|��|�|�d��dS)Nr�F)r�rKrBrQrHr�r
r
rrL�s
z#BaseSemaphoreTests.test_try_acquirecsV|�d�����g���fdd�}t|d���|�t��dgddgd�dS)	Nr�cs$����d������d��dSrJrMr
�rnr�r
rr�sz8BaseSemaphoreTests.test_try_acquire_contended.<locals>.frTFr�Tr�)r�rBr
r&rYr�rRr
r�rrS�s
$z-BaseSemaphoreTests.test_try_acquire_contendedcCs�|�d�}|jt|jddd�|�|jdd��|�|jdd��|�|jdd��|��|�|jdd��t��}|�|jdd��t��|}|�	|d�dS)Nr�F��?rgg{�G�zt?ri)
r�rarorBrKrQrHrrjr9)rr��tr�r
r
r�test_acquire_timeout�s
z'BaseSemaphoreTests.test_acquire_timeoutcsT|�������fdd�}t|d�}|��t�|�|j����|��dS)NcrUrrVr
�r�r
rr�rXz0BaseSemaphoreTests.test_default_value.<locals>.frP)	r�rBr
r$rrQrrHr&r�r
r�r�test_default_value�s
z%BaseSemaphoreTests.test_default_valuecsb��d��d��fdd�	}|�����d�������t|t�����d�����dS)Nr�c	s���;����d�����������d��|r|�Wd�n1s(wYWd�dSWd�dS1s@wYdSrJ)rKrBrHrQr^r�r
rr`	s���"�z+BaseSemaphoreTests.test_with.<locals>._withFr)r�rKrBrHrarb)rr`r
r�rrcs
zBaseSemaphoreTests.test_withN)r)r*r+r,r>r�rEr]r�rLrSr�r�rcr
r
r
rr�zs
% 

r�c@�eZdZdZdd�ZdS)�SemaphoreTestsz)
    Tests for unbounded semaphores.
    cCs.|�d�}|��|��|��|��dS�NrP)r�rHrBr�r
r
rr�s

z&SemaphoreTests.test_release_unacquiredN�r)r*r+r,r�r
r
r
rr��r�c@r�)�BoundedSemaphoreTestsz'
    Tests for bounded semaphores.
    cCs8|��}|�t|j�|��|��|�t|j�dSr)r�rarorHrBr�r
r
rr�+s
z-BoundedSemaphoreTests.test_release_unacquiredNr�r
r
r
rr�&r�r�c@s�eZdZdZdZdZdd�Zdd�Zdd	�Zd
d�Z	d"d
d�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd �Zd!S)#�BarrierTestsz$
    Tests for Barrier objects.
    rTg@cCs|j|j|jd�|_dS)Nrg)�barriertyper[�defaultTimeout�barrierr#r
r
rr0;r�zBarrierTests.setUpcCs|j��dSr)r��abortr#r
r
rr4=r1zBarrierTests.tearDowncCs"t||jd�}|�|��dSr�)r
r[r&r�r
r
r�run_threads@szBarrierTests.run_threadscCs�|jj}|�||j�t|�D]4}|d�d�|�t|d�||�|j��|d�d�|�t|d�|d|�|j��q|�|jjd�|�	|jj
�dS)NrTrP)r��partiesrYr[rrr"r��	n_waitingrQ�broken)rrnr�mr r
r
r�	multipassEs
zBarrierTests.multipassrPcs&ggg����fdd�}��|�dS)z;
        Test that a barrier is passed in lockstep
        cs�����dSr)r�r
��passesrnrr
rrWsz$BarrierTests.test_barrier.<locals>.fN�r�)rr�rr
r�r�test_barrierRszBarrierTests.test_barriercCs
|�d�S)zC
        Test that a barrier works for 10 consecutive runs
        r�)r�r#r
r
r�test_barrier_10[s
zBarrierTests.test_barrier_10cs:g���fdd�}��|���t��tt�j���dS)z9
        test the return value from barrier.wait
        cs�j��}��|�dSr)r�r�r)r��rnrr
rrfs
z(BarrierTests.test_wait_return.<locals>.fN)r�rY�sumrr[rRr
r�r�test_wait_returnas
zBarrierTests.test_wait_returncs<g��fdd�}���j|�����fdd�}��|�dS)z,
        Test the 'action' callback
        cs��d�dSr')rr
)rnr
r�actionrr1z(BarrierTests.test_action.<locals>.actioncs�����t��d�dSr�)r�rYr"r
�r�rnrr
rrusz#BarrierTests.test_action.<locals>.fN�r�r[r�)rr�rr
r�r�test_actionms
zBarrierTests.test_actioncsZg�g����fdd�}��|���t��d���t���jd����jj�dS)zK
        Test that an abort will put the barrier in a broken state
        cstz�j��}|�jdkrt��j����d�WdStjy+��d�YdSty9�j��YdSw�Nr�T)r�r�r[r�rr�BrokenBarrierErrorr��r �r�r�rr
rr�s


�z"BarrierTests.test_abort.<locals>.frrPN)r�rYr"r[rKr�r�rRr
rr�
test_abort{s

zBarrierTests.test_abortcsdg�g�g�����fdd�}��|���t��d���t���jd���t���j�dS)zL
        Test that a 'reset' on a barrier frees the waiting threads
        cs��j��}|�jdkr)�jj�jdkr#t�d��jj�jdks�j��nz�j����d�Wntj	yD��d�Ynw�j����d�dS)Nr�rPg����MbP?T)
r�r�r[r�rr	�resetrrrr�r�r��results3rr
rr�s

�
�
z"BarrierTests.test_reset.<locals>.frrPN)r�rYr"r[rRr
rr�
test_reset�s
zBarrierTests.test_resetcsrg�g�g����j�������fdd�}��|���t��d���t���jd���t���j�dS)zF
        Test that a barrier can be reset after being broken.
        cs�z�j��}|�jdkrt��j����d�Wntjy)��d�Ynty6�j��Ynw����jdkrE�j������j����d�dSr)	r�r�r[r�rrrr�rr��barrier2r�r�r	rr
rr�s"


�

z,BarrierTests.test_abort_and_reset.<locals>.frrPN)r�r[r�rYr"rRr
rr�test_abort_and_reset�s
z!BarrierTests.test_abort_and_resetcs�fdd�}��|�dS)z$
        Test wait(timeout)
        cs:�j��}|�jdkrt�d���tj�jjd�dS)Nr�r�ri)r�r�r[rr	rarrrr#r
rr�s

�z$BarrierTests.test_timeout.<locals>.fNr�rRr
r#rrq�szBarrierTests.test_timeoutcs,�j�jdd����fdd�}��|�dS)z4
        Test the barrier's default timeout
        g333333�?rgcs4���}|�jdkrt�d���tj�j�dS)Nr�r�)r�r[rr	rarrr�r�rr
rr�s
z,BarrierTests.test_default_timeout.<locals>.fNrrRr
rr�test_default_timeout�sz!BarrierTests.test_default_timeoutcCs|�d�}|��|��dSr�)r�r�)rr\r
r
r�test_single_thread�s
zBarrierTests.test_single_threadN)rP)r)r*r+r,r[r�r0r4r�r�r�r�r�rrr
r
rqrrr
r
r
rr�4s$

	"r�) r,�osrwr�r�_threadrrr�unittestrr�testr�test.supportr�
skipUnless�hasattrr�r�objectr
�TestCaser-r:r{r�r�r�r�r�r�r�r
r
r
r�<module>s:�1	DC_0

Youez - 2016 - github.com/yon3zu
LinuXploit