o
    €¨Êh  ã                   @   s$  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yL   e jZY nw 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 )é    N)Ú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__Ú_pidÚweakrefÚWeakKeyDictionaryÚ	_childrenÚ_start_calledr
   Ú_parent)ÚselfÚgroupÚtargetÚnameÚargsÚkwargsr   r   úI/var/www/html/env/lib/python3.10/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$   C   s
   zDummyProcess.startc                 C   s   | j r	|  ¡ s	dS d S )Nr   )r   Úis_aliver%   r   r   r"   ÚexitcodeJ   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dS 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   X   s    
r   c                  C   s2   t ƒ j} t| ƒD ]}| ¡ s|  |d ¡ qt| ƒS ©N)r
   r   Úlistr&   Úpop)ÚchildrenÚpr   r   r"   r   d   s   €r   c                   C   ó   d S r3   r   r   r   r   r"   r   l   ó   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   r   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   r;   ÚitemsÚ
startswithÚappendÚsortÚ	__class__r(   ÚstrÚjoin)r   r?   Útempr   Úvaluer   r   r"   Ú__repr__u   s   
€zNamespace.__repr__N)r(   r)   r*   r   rH   r   r   r   r"   r:   p   s    r:   Tc                 C   s   t   | |¡S r3   )Úarray)ÚtypecodeÚsequenceÚlockr   r   r"   ÚArrayƒ   s   rM   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   rJ   rG   rL   r   r   r"   r   ‰   s   
zValue.__init__c                 C   s   | j S r3   ©rP   r%   r   r   r"   Ú_get�   s   z
Value._getc                 C   s
   || _ d S r3   rQ   )r   rG   r   r   r"   Ú_set�   ó   
z
Value._setc                 C   s   dt | ƒj| j| jf S )Nz<%r(%r, %r)>)Útyper(   rO   rP   r%   r   r   r"   rH   ”   s   
ÿzValue.__repr__N©T)	r(   r)   r*   r   rR   rS   r+   rG   rH   r   r   r   r"   rN   ‡   s    

rN   c                   C   s
   t jt S r3   )r-   Úmodulesr(   r   r   r   r"   r   ™   rT   r   c                   C   r8   r3   r   r   r   r   r"   Úshutdown�   r9   rX   r   c                 C   s   ddl m} || ||ƒS )Nr   )Ú
ThreadPool)Úbilliard.poolrY   )Ú	processesÚinitializerÚinitargsrY   r   r   r"   r   ¡   s   r   rV   )NNr   )$r   r-   r   rI   r   r   r   r   r   Úqueuer   Úbilliard.connectionr   Ú__all__r   r   r/   ÚAttributeErrorr   r	   Úcurrent_threadr
   r   r   r   r   Úobjectr:   Údictr4   rM   rN   r   rX   r   r   r   r   r   r"   Ú<module>   s<   &

ÿ

