U
    .e                     @   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 dddd	d
ddddddddddgZG dd de jZz
e jZW n ek
r   e jZY nX 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__Z_pidweakrefWeakKeyDictionary	_children_start_calledr
   _parent)selfgrouptargetnameargskwargsr   r   ;/tmp/pip-unpacked-wheel-39f38r4u/billiard/dummy/__init__.pyr   <   s
    
zDummyProcess.__init__c                 C   s>   | j t kstd| _t| j dr.d | j j| < tj|  d S )NTr   )	r   r
   AssertionErrorr   hasattrr   r   r   startr   r   r   r!   r$   C   s
    zDummyProcess.startc                 C   s   | j r|  sd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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   X   s   c                  C   s2   t  j} t| D ]}| s| |d  qt| S N)r
   r   listr&   pop)childrenpr   r   r!   r   d   s
    c                   C   s   d S r3   r   r   r   r   r!   r   l   s    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   r9   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   rF   r   r   r   r!   r8   p   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    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    )T)NNr   )$r   r-   r   rG   r   r   r   r   r   queuer   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>'   sV               


