Your IP : 216.73.216.60


Current Path : /opt/alt/python38/lib64/python3.8/test/__pycache__/
Upload File :
Current File : //opt/alt/python38/lib64/python3.8/test/__pycache__/test_fork1.cpython-38.opt-2.pyc

U

i�f��@s�ddlZddlZddlZddlZddlZddlZddlZddlm	Z	ddl
mZmZm
Z
eed�Gdd�de	�Zdd�Zed	kr�e��dS)
�N)�ForkWait)�
reap_children�
get_attribute�verbose�forkc@s$eZdZdd�Zdd�Zdd�ZdS)�ForkTestcCsnt��d}t��|kr@t�|tj�\}}||kr4q@t�d�q|�||�|�|dd|d@|d?f�dS)Ng$@g�������?rzcause = %d, exit = %d��)�time�	monotonic�os�waitpid�WNOHANG�sleepZassertEqual)�selfZcpidZdeadlineZspidZstatus�r�4/opt/alt/python38/lib64/python3.8/test/test_fork1.py�	wait_implszForkTest.wait_implcs�t���d�d�d�����fdd�}tj|d�}|�����t��}zR|s�t��}|�krlt�d�q�t
dkr|td	�t�d�n|��|�|�W5zt�|tj	�Wnt
k
r�YnXXdS)
Nzfake test module�partialZcompletecs:t���tj�<���t�d��tj�<t��dS)Ng{�G�z�?)�imp�acquire_lock�sys�modules�setr
r�release_lockr�Zcomplete_moduleZfake_module_nameZimport_startedZpartial_modulerr�importer's


z9ForkTest.test_threaded_import_lock_fork.<locals>.importer)�targetr�z Child encountered partial module)�	threadingZEventZThread�start�waitrr�kill�signal�SIGKILL�OSError�
__import__�_exitr�print�joinr)rr�t�pid�mrrr�test_threaded_import_lock_fork!s.z'ForkTest.test_threaded_import_lock_forkcs&�fdd�}td�D]}||�qdS)Nc	s�d}d}zNz0t|�D]}t��|d7}qt��}|}W5t|�D]}t��qDXWn4tk
r�|r�tdkrztd�t�	d��YnX|r�t�	d���
|�dS)NrFrzRuntimeError in child)�rangerrrrr�RuntimeErrorrr(r'r)�level�releaseZin_child�ir+�rrr�fork_with_import_lockNs(



zDForkTest.test_nested_import_lock_fork.<locals>.fork_with_import_lock�)r.)rr4r0rr3r�test_nested_import_lock_forkKsz%ForkTest.test_nested_import_lock_forkN)�__name__�
__module__�__qualname__rr-r6rrrrrs
*rcCs
t�dS)N)rrrrr�tearDownModuleksr:�__main__)�_imprrr#rrr
ZunittestZtest.fork_waitrZtest.supportrrrrr:r7�mainrrrr�<module>s
X