관리-도구
편집 파일: synchronize.cpython-39.pyc
a �����DOgZ-����������������������@���s"��g�d��Z�ddlZddlZddlZddlZddlZddlmZ�ddlmZ�ddlm Z �zddlm Z mZ�W�n�ey����ed��Y�n0�e ed ��\ZZej jZG�d d��de�Z G�dd ��d e �ZG�dd��de�ZG�dd��de �ZG�dd��de �ZG�dd��de�ZG�dd��de�ZG�dd��dej�ZdS�))�Lock�RLock� Semaphore�BoundedSemaphore� Condition�Event�����N����)�context)�process)�util)�SemLock� sem_unlinkz�This platform lacks a functioning sem_open implementation, therefore, the required synchronization primitives needed will not function, see issue 3770.����c�������������������@���s\���e�Zd�Ze���Zdd��Zedd���Zdd��Z dd��Z d d ��Zdd��Zd d��Z edd���ZdS�)r���c������������� ���C���s����|d�u�rt�j���}|���}tjdkp*|dk}td�D�]<}z t�||||�� ��|��}|�_ W�n�tyj���Y�q40��qzq4td��t� d|j���|�����tjdkr�dd��} t�|�| ��|�j jd�ur�dd lm} �| |�j jd ��tj|�tj|�j jfdd��d�S�) N�win32�fork�d���zcannot find name for semaphorezcreated semlock with handle %sc�����������������S���s���|�j�����d�S��N)�_semlock�_after_fork)�obj��r����3/usr/lib64/python3.9/multiprocessing/synchronize.pyr���G���s����z%SemLock.__init__.<locals>._after_forkr���)�register� semaphorer���)�exitpriority)r ����_default_context�get_context�get_start_method�sys�platform�range�_multiprocessingr���� _make_namer����FileExistsErrorr����debug�handle� _make_methods�register_after_fork�name�resource_trackerr����Finalize�_cleanup)�self�kind�value�maxvalue�ctxr(���� unlink_now�i�slr���r���r���r���r����__init__2���s2���� � �zSemLock.__init__c�����������������C���s"���ddl�m}�t|���||�d��d�S�)Nr���)� unregisterr���)r)���r5���r ���)r(���r5���r���r���r���r+���T���s����zSemLock._cleanupc�����������������C���s���|�j�j|�_|�j�j|�_d�S�r���)r����acquire�release�r,���r���r���r���r&���Z���s���� zSemLock._make_methodsc�����������������C���s ���|�j����S�r���)r���� __enter__r8���r���r���r���r9���^���s����zSemLock.__enter__c�����������������G���s���|�j�j|��S�r���)r����__exit__�r,����argsr���r���r���r:���a���s����zSemLock.__exit__c�����������������C���sD���t��|���|�j}tjdkr,t�����|j�}n|j}||j|j |j fS�)Nr���)r ����assert_spawningr���r���r����get_spawning_popen�duplicate_for_childr%���r-���r/���r(���)r,���r3����hr���r���r����__getstate__d���s���� zSemLock.__getstate__c�����������������C���s,���t�jj|��|�_t�d|d����|�����d�S�)Nz recreated blocker with handle %rr���)r!���r����_rebuildr���r���r$���r&����r,����stater���r���r����__setstate__m���s����zSemLock.__setstate__c�������������������C���s���dt����jd�ttj�f�S�)Nz%s-%s� semprefix)r ����current_process�_config�nextr����_randr���r���r���r���r"���r���s�����zSemLock._make_nameN)�__name__� __module__�__qualname__�tempfile�_RandomNameSequencerJ���r4����staticmethodr+���r&���r9���r:���rA���rE���r"���r���r���r���r���r���.���s���" r���c�������������������@���s&���e�Zd�Zd dd�Zdd��Zdd��ZdS�) r���r���c����������������C���s���t�j|�t|t|d��d�S��N�r0���)r���r4���� SEMAPHORE� SEM_VALUE_MAX�r,���r.���r0���r���r���r���r4���}���s����zSemaphore.__init__c�����������������C���s ���|�j����S�r���)r���� _get_valuer8���r���r���r���� get_value����s����zSemaphore.get_valuec�����������������C���s6���z|�j����}W�n�ty$���d}Y�n0�d|�jj|f�S�)N�unknownz<%s(value=%s)>)r���rV���� Exception� __class__rK����r,���r.���r���r���r����__repr__����s ���� zSemaphore.__repr__N)r���)rK���rL���rM���r4���rW���r\���r���r���r���r���r���{���s��� r���c�������������������@���s���e�Zd�Zddd�Zdd��ZdS�)r���r���c����������������C���s���t�j|�t|||d��d�S�rQ����r���r4���rS���rU���r���r���r���r4�������s����zBoundedSemaphore.__init__c�����������������C���s<���z|�j����}W�n�ty$���d}Y�n0�d|�jj||�j�jf�S�)NrX���z<%s(value=%s, maxvalue=%s)>)r���rV���rY���rZ���rK���r/���r[���r���r���r���r\�������s���� �zBoundedSemaphore.__repr__N)r����rK���rL���rM���r4���r\���r���r���r���r���r�������s��� r���c�������������������@���s���e�Zd�Zdd��Zdd��ZdS�)r���c����������������C���s���t�j|�tdd|d��d�S��Nr���rR���r]����r,���r0���r���r���r���r4�������s����z Lock.__init__c�����������������C���s����zf|�j����r8t���j}t���jdkrd|dt���j�7�}n,|�j����dkrLd}n|�j����dkr`d}nd}W�n�t y|���d}Y�n0�d |�j j|f�S�) N� MainThread�|r����Noner����SomeOtherThread�SomeOtherProcessrX���z<%s(owner=%s)>)r����_is_miner ���rG���r(���� threading�current_threadrV����_countrY���rZ���rK���)r,���r(���r���r���r���r\�������s���� z Lock.__repr__Nr^���r���r���r���r���r�������s���r���c�������������������@���s���e�Zd�Zdd��Zdd��ZdS�)r���c����������������C���s���t�j|�tdd|d��d�S�r_���)r���r4����RECURSIVE_MUTEXr`���r���r���r���r4�������s����zRLock.__init__c�����������������C���s����z||�j����rBt���j}t���jdkr6|dt���j�7�}|�j����}n8|�j����dkrZd\}}n |�j����dkrrd\}}nd\}}W�n�t y����d\}}Y�n0�d |�j j||f�S�) Nra���rb���r���)rc���r���r���)rd����nonzero)re���rk���)rX���rX����<%s(%s, %s)>)r���rf���r ���rG���r(���rg���rh���ri���rV���rY���rZ���rK���)r,���r(����countr���r���r���r\�������s���� zRLock.__repr__Nr^���r���r���r���r���r�������s���r���c�������������������@���sl���e�Zd�Zddd�Zdd��Zdd��Zdd ��Zd d��Zdd ��Zdd��Z ddd�Z ddd�Zdd��Zddd�Z dS�)r���Nc����������������C���s>���|p |����|�_|�d�|�_|�d�|�_|�d�|�_|�����d�S��Nr���)r����_lockr����_sleeping_count�_woken_count�_wait_semaphorer&���)r,����lockr0���r���r���r���r4�������s ����zCondition.__init__c�����������������C���s���t��|���|�j|�j|�j|�jfS�r���)r ���r=���ro���rp���rq���rr���r8���r���r���r���rA�������s���� �zCondition.__getstate__c�����������������C���s ���|\|�_�|�_|�_|�_|�����d�S�r���)ro���rp���rq���rr���r&���rC���r���r���r���rE�������s����� zCondition.__setstate__c�����������������C���s ���|�j����S�r���)ro���r9���r8���r���r���r���r9�������s����zCondition.__enter__c�����������������G���s���|�j�j|��S�r���)ro���r:���r;���r���r���r���r:�������s����zCondition.__exit__c�����������������C���s���|�j�j|�_|�j�j|�_d�S�r���)ro���r6���r7���r8���r���r���r���r&�������s���� zCondition._make_methodsc�����������������C���sH���z|�j�j���|�jj����}W�n�ty2���d}Y�n0�d|�jj|�j|f�S�)NrX���rl���)rp���r���rV���rq���rY���rZ���rK���ro���)r,����num_waitersr���r���r���r\�������s���� � zCondition.__repr__c�������������� ���C���s����|�j�j���sJ�d��|�j����|�j�j���}t|�D�]}|�j�����q2zD|�j�d|�W�|�j ����t|�D�]}|�j�����qdS�]}|�j�����qvn$|�j ����t|�D�]}|�j�����q�0�d�S�)Nz,must acquire() condition before using wait()T) ro���r���rf���rp���r7���ri���r ���rr���r6���rq���)r,����timeoutrm���r2���r���r���r����wait����s&����� ��� zCondition.waitr���c�����������������C���s����|�j�j���sJ�d��|�j�d�r(J�d��|�j�d�rN|�j�d�}|s(J�d��q(d}||k�rz|�j�d�rz|�j����|d7�}qR|r�t|�D�]}|�j����q�|�j�d�r�q�d�S�)Nzlock is not ownedFz<notify: Should not have been able to acquire _wait_semaphorez>notify: Bug in sleeping_count.acquire- res should not be Falser���r���) ro���r���rf���rr���r6���rq���rp���r7���r ���)r,����n�res�sleepersr2���r���r���r����notify��s$������ zCondition.notifyc�����������������C���s���|�j�tjd��d�S�)N)rw���)rz���r����maxsizer8���r���r���r���� notify_all(��s����zCondition.notify_allc�����������������C���sd���|��}|r|S�|d�ur$t����|�}nd�}d�}|s`|d�urN|t�����}|dkrNq`|��|��|��}q,|S�rn���)�time� monotonicrv���)r,���� predicateru����result�endtime�waittimer���r���r����wait_for+��s���� zCondition.wait_for)N)N)r���)N)rK���rL���rM���r4���rA���rE���r9���r:���r&���r\���rv���rz���r|���r����r���r���r���r���r�������s��� r���c�������������������@���s6���e�Zd�Zdd��Zdd��Zdd��Zdd��Zdd d�Zd S�) r���c����������������C���s ���|��|����|�_|�d�|�_d�S�rn���)r���r����_condr����_flagr`���r���r���r���r4���C��s����zEvent.__init__c�����������������C���sR���|�j��8�|�j�d�r.|�j����W�d�����dS�W�d�����dS�1�sD0����Y��d�S��NFT)r����r����r6���r7���r8���r���r���r����is_setG��s ���� zEvent.is_setc�����������������C���sJ���|�j��0�|�j�d��|�j����|�j�����W�d�����n1�s<0����Y��d�S��NF)r����r����r6���r7���r|���r8���r���r���r����setN��s���� z Event.setc�����������������C���s6���|�j���|�j�d��W�d�����n1�s(0����Y��d�S�r����)r����r����r6���r8���r���r���r����clearT��s����zEvent.clearNc�����������������C���sv���|�j��\�|�j�d�r |�j����n|�j��|��|�j�d�rR|�j����W�d�����dS�W�d�����dS�1�sh0����Y��d�S�r����)r����r����r6���r7���rv���)r,���ru���r���r���r���rv���X��s���� z Event.wait)N)rK���rL���rM���r4���r����r����r����rv���r���r���r���r���r���A��s ���r���c�������������������@���sZ���e�Zd�Zddd�Zdd��Zdd��Zedd ���Zejd d ���Zedd���Z e jd d���Z dS�)�BarrierNc���������� ������C���sR���dd�l�}ddlm}�||�d�d��}|���}|��|||||f��d|�_d|�_d�S�)Nr���r���)� BufferWrapperr2���r���)�struct�heapr�����calcsizer���rE����_stateri���) r,����parties�actionru���r0���r����r�����wrapper�condr���r���r���r4���j��s����zBarrier.__init__c�����������������C���s.���|\|�_�|�_|�_|�_|�_|�j����d�|�_d�S�)Nr2���)�_parties�_action�_timeoutr�����_wrapper�create_memoryview�cast�_arrayrC���r���r���r���rE���s��s�����zBarrier.__setstate__c�����������������C���s���|�j�|�j|�j|�j|�jfS�r���)r����r����r����r����r����r8���r���r���r���rA���x��s�����zBarrier.__getstate__c�����������������C���s ���|�j�d�S�rn����r����r8���r���r���r���r����|��s����zBarrier._statec�����������������C���s���||�j�d<�d�S�rn���r����r[���r���r���r���r�������s����c�����������������C���s ���|�j�d�S��Nr���r����r8���r���r���r���ri������s����zBarrier._countc�����������������C���s���||�j�d<�d�S�r����r����r[���r���r���r���ri������s����)NN) rK���rL���rM���r4���rE���rA����propertyr�����setterri���r���r���r���r���r����h��s��� r����)�__all__rg���r���rN���r!���r}�����r ���r ���r���r���r ����ImportError�listr ���rj���rS���rT����objectr���r���r���r���r���r���r����r���r���r���r����<module> ���s,��� Mo'