Your IP : 216.73.216.213


Current Path : /opt/alt/python34/lib64/python3.4/test/test_importlib/__pycache__/
Upload File :
Current File : //opt/alt/python34/lib64/python3.4/test/test_importlib/__pycache__/test_locks.cpython-34.pyo

�
g f��@s'ddlmZejd�\ZZejZejZddlZddl	Z	ddl
Z
ddlZddlm
Z
yddlZWnek
r�dZYnXddlmZedk	rGdd�d�ZGd	d
�d
eej�ZGdd�deej�Zn2Gd
d
�d
e
j�ZGdd�de
j�ZGdd�d�Ze
jed�Gdd�dee
j��Ze
jed�Gdd�dee
j��ZGdd�d�ZGdd�dee
j�ZGdd�dee
j�Ze
jdd��Zedkr#e�ndS)�)�util�	importlib�N)�support)�
lock_testsc@sFeZdZedd��ZdZdZdZdZdZ	dZ
dS)�ModuleLockAsRLockTestscCs
|jd�S)NZ	some_lock)�LockType)�cls�r
�C/opt/alt/python34/lib64/python3.4/test/test_importlib/test_locks.py�<lambda>szModuleLockAsRLockTests.<lambda>N)�__name__�
__module__�__qualname__�classmethodZlocktypeZtest__is_ownedZtest_try_acquireZtest_try_acquire_contendedZ	test_withZtest_timeoutZtest_release_save_unacquiredr
r
r
rrsrc@seZdZejZdS)�Frozen_ModuleLockAsRLockTestsN)r
rr�frozen_bootstrap�_ModuleLockrr
r
r
rr$src@seZdZejZdS)�Source_ModuleLockAsRLockTestsN)r
rr�source_bootstraprrr
r
r
rr'src@seZdZdS)rN)r
rrr
r
r
rr+sc@seZdZdS)rN)r
rrr
r
r
rr.sc@sLeZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�DeadlockAvoidanceTestscCsBy tj�|_tjd�Wntk
r=d|_YnXdS)Ng���ư>)�sys�getswitchinterval�old_switchinterval�setswitchinterval�AttributeError)�selfr
r
r�setUp4s

zDeadlockAvoidanceTests.setUpcCs&|jdk	r"tj|j�ndS)N)rrr)rr
r
r�tearDown;szDeadlockAvoidanceTests.tearDowncs�d��fdd�t��D����fdd�t��D��|rV�}n
�d}tj|��g��fdd������fdd	�}tj||�j��jt��|��S)
N�
cs%g|]}�jt|���qSr
)r�str)�.0�i)rr
r�
<listcomp>As	zFDeadlockAvoidanceTests.run_deadlock_avoidance_test.<locals>.<listcomp>cs,g|]"}�|�|d�f�qS)rr
)r!r")�NLOCKS�locksr
rr#Bs	rcs2y|j�Wn�jk
r)dSYnXdSdS)zCTry to acquire the lock. Return True on success, False on deadlock.FTN)�acquire�
DeadlockError)�lock)rr
r�_acquireIs
	zDDeadlockAvoidanceTests.run_deadlock_avoidance_test.<locals>._acquirecsq�j�\}}�|�}�j��|�}�j||f�|rZ|j�n|rm|j�ndS)N)�pop�wait�append�release)�a�bZra�rb)r)�barrier�pairs�resultsr
r�fQs

z=DeadlockAvoidanceTests.run_deadlock_avoidance_test.<locals>.f)�range�	threadingZBarrierrZBunchZwait_for_finished�assertEqual�len)rZcreate_deadlockZNTHREADSr4r
)r$r)r1r%r2r3rr�run_deadlock_avoidance_test?s"	

z2DeadlockAvoidanceTests.run_deadlock_avoidance_testcCsU|jd�}|jd�}|j|d�|j|jd�t|�|�dS)NTFr)TF)TT)r9�countZassertGreaterEqualr7r8)rr3Znb_deadlocksr
r
r�
test_deadlock_sz$DeadlockAvoidanceTests.test_deadlockcCsK|jd�}|j|jd�d�|j|jd�t|��dS)NFTr)TF)TT)r9r7r:r8)rr3r
r
r�test_no_deadlockhsz'DeadlockAvoidanceTests.test_no_deadlockN)r
rrrrr9r;r<r
r
r
rr2s
 	rzthreads needed for this testc@s"eZdZejZejZdS)�Frozen_DeadlockAvoidanceTestsN)r
rrrrr�_DeadlockErrorr'r
r
r
rr=ms	r=c@s"eZdZejZejZdS)�Source_DeadlockAvoidanceTestsN)r
rrrrrr>r'r
r
r
rr?rs	r?c@s(eZdZdd�Zdd�ZdS)�
LifetimeTestscCs�d}|j||jj�|jj|�}|j||jj�tj|�}~tj�|j||jj�|j	|��dS)NZxyzzy)
ZassertNotIn�	bootstrap�
_module_locks�_get_module_lockZassertIn�weakref�refr�
gc_collectZassertIsNone)r�namer(�wrr
r
r�test_lock_lifetimezs
z LifetimeTests.test_lock_lifetimecCs3tj�|jdt|jj�|jj�dS)Nr)rrFr7r8rArB)rr
r
r�test_all_locks�s
zLifetimeTests.test_all_locksN)r
rrrIrJr
r
r
rr@xsr@c@seZdZeZdS)�Frozen_LifetimeTestsN)r
rrrrAr
r
r
rrK�srKc@seZdZeZdS)�Source_LifetimeTestsN)r
rrrrAr
r
r
rrL�srLcCs tjtttttt�dS)N)rZrun_unittestrrr=r?rKrLr
r
r
r�	test_main�s	rM�__main__) �rZimport_importlibZfrozen_initZsource_init�
_bootstraprrrZtimeZunittestrDZtestrr6�ImportErrorrrZ
RLockTestsrrZTestCaserZ
skipUnlessr=r?r@rKrLZreap_threadsrMr
r
r
r
r�<module>s<		
;