o
    @cs                     @   s   g d Z ddlZddlZddlZddlZddlmZ ddlmZmZm	Z	m
Z
 ddlmZmZmZ ddlmZ G dd	 d	ej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 ))Processcurrent_processactive_childrenfreeze_supportLockRLock	SemaphoreBoundedSemaphore	ConditionEventBarrierQueueManagerPipePoolJoinableQueue    N   )r   )r   r   r   r   )r
   r	   r   )r   c                   @   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   \C:\Users\Chris\AppData\Local\Programs\Python\Python310\lib\multiprocessing\dummy\__init__.pyr   $   s
   
zDummyProcess.__init__c                 C   sN   | j t urtd| j t d| _t| j drd | j j| < tj	|  d S )Nz,Parent is {0!r} but current_process is {1!r}Tr   )
r   r   RuntimeErrorformatr   hasattrr   r   r   startr   r   r   r$   r(   +   s   zDummyProcess.startc                 C   s   | j r	|  s	dS d S )Nr   )r   is_aliver)   r   r   r$   exitcode5   s   zDummyProcess.exitcode)__name__
__module____qualname__r   r(   propertyr+   r   r   r   r$   r   "   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 r0   r   r   r   r   r$   r   K      r   c                   @   s   e Zd Zdd Zdd ZdS )	Namespacec                K   s   | j | d S r0   )__dict__update)r   kwdsr   r   r$   r   S   s   zNamespace.__init__c                 C   sZ   t | j }g }|D ]\}}|ds|d||f  q|  d| jjd|f S )N_z%s=%rz%s(%s)z, )	r1   r8   items
startswithappendsort	__class__r,   join)r   r<   tempr!   valuer   r   r$   __repr__U   s   
zNamespace.__repr__N)r,   r-   r.   r   rD   r   r   r   r$   r7   R   s    r7   Tc                 C   s   t  | |S r0   )array)typecodesequencelockr   r   r$   Arraya   s   rI   c                   @   s8   e Zd Zd
ddZedd Zejdd Zdd Zd	S )ValueTc                 C   s   || _ || _d S r0   )	_typecode_value)r   rF   rC   rH   r   r   r$   r   e   s   
zValue.__init__c                 C   s   | j S r0   rL   r)   r   r   r$   rC   i   s   zValue.valuec                 C   s
   || _ d S r0   rM   )r   rC   r   r   r$   rC   m   s   
c                 C   s   dt | j| j| jf S )Nz<%s(%r, %r)>)typer,   rK   rL   r)   r   r   r$   rD   q   s   zValue.__repr__NT)r,   r-   r.   r   r/   rC   setterrD   r   r   r   r$   rJ   d   s    


rJ   c                   C   s
   t jt S r0   )sysmodulesr,   r   r   r   r$   r   t   s   
r   c                   C   r5   r0   r   r   r   r   r$   shutdownw   r6   rS   r   c                 C   s   ddl m} || ||S )N   )
ThreadPool)poolrU   )	processesinitializerinitargsrU   r   r   r$   r   z   s   r   rO   )NNr   )#__all__r   rQ   r   rE   
connectionr   r   r   r   r   r
   r	   r   queuer   r   r   r   current_threadr   r   r   r   r   objectr7   dictr1   rI   rJ   r   rS   r   r   r   r   r   r$   <module>   s0   	


