a
    ŠxdH  ã                   @   s0  d dl mZ d dlZd dlZd dlZd dlZd dlmZmZmZm	Z	 d dlm
Z
 d dlmZ d dlmZ g d¢ZG dd	„ d	ejƒZz
ejZW n ey¤   ejZY n0 G d
d„ deƒZeZejZe ¡ eƒ _dd„ Zdd„ ZG dd„ deƒZeZeZddd„Z G dd„ deƒZ!dd„ Z"dd„ Z#ddd„Z$eZ%dS ) é    )Úabsolute_importN)ÚLockÚRLockÚ	SemaphoreÚBoundedSemaphore)ÚEvent)ÚQueue)ÚPipe)ÚProcessÚcurrent_processÚactive_childrenÚfreeze_supportr   r   r   r   Ú	Conditionr   r   ÚManagerr	   ÚPoolÚJoinableQueuec                   @   s4   e Zd Zddddi fdd„Zdd„ Zedd„ ƒZdS )	ÚDummyProcessN© c                 C   s8   t j | |||||¡ d | _t ¡ | _d| _tƒ | _	d S )NF)
Ú	threadingÚThreadÚ__init__Z_pidÚweakrefÚWeakKeyDictionaryÚ	_childrenÚ_start_calledr   Ú_parent)ÚselfÚgroupÚtargetÚnameÚargsÚkwargsr   r   úO/var/www/html/Ranjet/env/lib/python3.9/site-packages/billiard/dummy/__init__.pyr   =   s
    
zDummyProcess.__init__c                 C   s>   | j tƒ u sJ ‚d| _t| j dƒr.d | j j| < tj | ¡ d S )NTr   )r   r   r   Úhasattrr   r   r   Ústart©r   r   r   r"   r$   D   s
    zDummyProcess.startc                 C   s   | j r|  ¡ sdS d S d S )Nr   )r   Úis_aliver%   r   r   r"   ÚexitcodeK   s    zDummyProcess.exitcode)Ú__name__Ú
__module__Ú__qualname__r   r$   Úpropertyr'   r   r   r   r"   r   ;   s   r   c                   @   s*   e Zd Zejd dkrejZnejjZdS )r   r   é   N)	r(   r)   r*   ÚsysÚversion_infoÚ
_ConditionÚ	notifyAllÚ
notify_allÚ__func__r   r   r   r"   r   Y   s   r   c                  C   s2   t ƒ j} t| ƒD ]}| ¡ s|  |d ¡ qt| ƒS ©N)r   r   Úlistr&   Úpop)ÚchildrenÚpr   r   r"   r   e   s
    r   c                   C   s   d S r3   r   r   r   r   r"   r   m   s    r   c                   @   s   e Zd Zdd„ Zdd„ ZdS )Ú	Namespacec                 K   s   | j  |¡ d S r3   )Ú__dict__Úupdate)r   Úkwdsr   r   r"   r   s   s    zNamespace.__init__c                 C   s\   t | j ¡ ƒ}g }|D ]$\}}| d¡s| d||f ¡ q| ¡  d| jjt 	d|¡f S )NÚ_z%s=%rz%s(%s)z, )
r4   r9   ÚitemsÚ
startswithÚappendÚsortÚ	__class__r(   ÚstrÚjoin)r   r=   Útempr   Úvaluer   r   r"   Ú__repr__v   s    
zNamespace.__repr__N)r(   r)   r*   r   rF   r   r   r   r"   r8   q   s   r8   Tc                 C   s   t   | |¡S r3   )Úarray)ÚtypecodeÚsequenceÚlockr   r   r"   ÚArray„   s    rK   c                   @   s8   e Zd Zddd„Zdd„ Zdd„ ZeeeƒZdd	„ Zd
S )ÚValueTc                 C   s   || _ || _d S r3   )Ú	_typecodeÚ_value)r   rH   rE   rJ   r   r   r"   r   Š   s    zValue.__init__c                 C   s   | j S r3   ©rN   r%   r   r   r"   Ú_getŽ   s    z
Value._getc                 C   s
   || _ d S r3   rO   )r   rE   r   r   r"   Ú_set‘   s    z
Value._setc                 C   s   dt | ƒj| j| jf S )Nz<%r(%r, %r)>)Útyper(   rM   rN   r%   r   r   r"   rF   •   s    
ÿzValue.__repr__N)T)	r(   r)   r*   r   rP   rQ   r+   rE   rF   r   r   r   r"   rL   ˆ   s
   

rL   c                   C   s
   t jt S r3   )r-   Úmodulesr(   r   r   r   r"   r   š   s    r   c                   C   s   d S r3   r   r   r   r   r"   Úshutdownž   s    rT   r   c                 C   s   ddl m} || ||ƒS )Nr   )Ú
ThreadPool)Zbilliard.poolrU   )Z	processesZinitializerZinitargsrU   r   r   r"   r   ¢   s    r   )T)NNr   )&Ú
__future__r   r   r-   r   rG   r   r   r   r   r   Zbilliard.fiver   Zbilliard.connectionr	   Ú__all__r   r   r/   ÚAttributeErrorr   r
   Úcurrent_threadr   r   r   r   r   Úobjectr8   Údictr4   rK   rL   r   rT   r   r   r   r   r   r"   Ú<module>"   s:   


