o
    Df                     @   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   P/home/ubuntu/webapp/venv/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<   &



