Your IP : 3.145.35.234


Current Path : /opt/alt/python35/lib64/python3.5/multiprocessing/__pycache__/
Upload File :
Current File : //opt/alt/python35/lib64/python3.5/multiprocessing/__pycache__/queues.cpython-35.opt-1.pyc



��Yf�)�@s,dddgZddlZddlZddlZddlZddlZddlZddlZddlm	Z	m
Z
ddlZddlm
Z
ddlmZdd	lmZmZmZmZmZdd
lmZGdd�de�Ze�ZGdd�de�ZGd
d�de�ZdS)�Queue�SimpleQueue�
JoinableQueue�N)�Empty�Full�)�
connection)�context)�debug�info�Finalize�register_after_fork�
is_exiting)�ForkingPicklerc@s	eZdZddd�Zdd�Zdd�Zdd	�Zd
ddd
�Zd
ddd�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zd d!�Zed"d#��Zed$d%��Zed&d'��ZdS)(rrcCs�|dkrddlm}||_tjdd�\|_|_|j�|_t	j
�|_tj
dkr|d|_n|j�|_|j|�|_d|_|j�tj
dkr�t|tj�dS)Nrr)�
SEM_VALUE_MAX�duplexF�win32)Zsynchronizer�_maxsizer�Pipe�_reader�_writer�Lock�_rlock�os�getpid�_opid�sys�platform�_wlockZBoundedSemaphore�_sem�
_ignore_epipe�_after_forkr
r)�self�maxsize�ctx�r%�;/opt/alt/python35/lib64/python3.5/multiprocessing/queues.py�__init__$s		
zQueue.__init__cCsAtj|�|j|j|j|j|j|j|j|j	fS)N)
r	�assert_spawningr rrrrrrr)r"r%r%r&�__getstate__9s
zQueue.__getstate__c	CsD|\|_|_|_|_|_|_|_|_|j�dS)N)	r rrrrrrrr!)r"�stater%r%r&�__setstate__>s6zQueue.__setstate__cCs�td�tjtj��|_tj�|_d|_d|_	d|_
d|_d|_|j
j|_|jj|_|jj|_dS)NzQueue._after_fork()F)r
�	threading�	Conditionr�	_notempty�collections�deque�_buffer�_thread�_jointhread�_joincancelled�_closed�_closer�
send_bytes�_send_bytesr�
recv_bytes�_recv_bytes�poll�_poll)r"r%r%r&r!Cs
					zQueue._after_forkTNc	Csf|jj||�st�|j�;|jdkr>|j�|jj|�|jj�WdQRXdS)N)	r�acquirerr.r2�
_start_threadr1�append�notify)r"�obj�block�timeoutr%r%r&�putPs

z	Queue.putc
Cs�|r?|dkr?|j�|j�}WdQRX|jj�n�|rUtj�|}|jj||�spt�zj|r�|tj�}|dks�|j|�r�t�n|j�s�t�|j�}|jj�Wd|jj�Xtj	|�S)Nr)
rr:r�release�timer=rr<r�loads)r"rBrC�resZdeadliner%r%r&�get[s&
	z	Queue.getcCs|j|jjj�S)N)rr�_semlockZ
_get_value)r"r%r%r&�qsizesszQueue.qsizecCs|j�S)N)r<)r"r%r%r&�emptywszQueue.emptycCs|jjj�S)N)rrJ�_is_zero)r"r%r%r&�fullzsz
Queue.fullcCs
|jd�S)NF)rI)r"r%r%r&�
get_nowait}szQueue.get_nowaitcCs|j|d�S)NF)rD)r"rAr%r%r&�
put_nowait�szQueue.put_nowaitcCsAd|_z|jj�Wd|j}|r<d|_|�XdS)NT)r5r�closer6)r"rQr%r%r&rQ�s			zQueue.closecCs!td�|jr|j�dS)NzQueue.join_thread())r
r3)r"r%r%r&�join_thread�s
	zQueue.join_threadcCs=td�d|_y|jj�Wntk
r8YnXdS)NzQueue.cancel_join_thread()T)r
r4r3Zcancel�AttributeError)r"r%r%r&�cancel_join_thread�s
	
zQueue.cancel_join_threadc
Cs�td�|jj�tjdtjd|j|j|j|j	|j
j|jfdd�|_
d|j
_td�|j
j�td�|js�t|j
tjtj|j
�gd	d�|_t|tj|j|jgd	d�|_dS)
NzQueue._start_thread()�target�args�nameZQueueFeederThreadTzdoing self._thread.start()z... done self._thread.start()Zexitpriority��
���)r
r1�clearr,ZThreadr�_feedr.r8rrrQr r2Zdaemon�startr4r�_finalize_join�weakref�refr3�_finalize_closer6)r"r%r%r&r>�s(

		


		zQueue._start_threadcCsDtd�|�}|dk	r6|j�td�n
td�dS)Nzjoining queue threadz... queue thread joinedz... queue thread already dead)r
�join)ZtwrZthreadr%r%r&r^�s
	

zQueue._finalize_joinc	Cs3td�|�|jt�|j�WdQRXdS)Nztelling queue thread to quit)r
r?�	_sentinelr@)�buffer�notemptyr%r%r&ra�s

zQueue._finalize_closecCs�td�|j}|j}|j}|j}	t}
tjdkrX|j}|j}nd}x:y�|�z|s{|�Wd|�Xy}xv|	�}
|
|
kr�td�|�dStj	|
�}
|dkr�||
�q�|�z||
�Wd|�Xq�WWnt
k
rYnXWqatk
r�}zZ|rTt|dd�t
jkrTdSt�rntd|�dSddl}|j�WYdd}~XqaXqaWdS)Nz$starting thread to feed data to piperz%feeder thread got sentinel -- exiting�errnorzerror in queue thread: %s)r
r=rE�wait�popleftrcrrr�dumps�
IndexError�	Exception�getattrrfZEPIPErr�	traceback�	print_exc)rdrer7Z	writelockrQZignore_epipeZnacquireZnreleaseZnwaitZbpopleft�sentinelZwacquireZwreleaserA�ermr%r%r&r\�sR
						


	!	
zQueue._feed)�__name__�
__module__�__qualname__r'r)r+r!rDrIrKrLrNrOrPrQrRrTr>�staticmethodr^rar\r%r%r%r&r"s$


c@saeZdZddd�Zdd�Zdd�Zdd	d
d�Zdd
�Zdd�Zd	S)rrcCs;tj||d|�|jd�|_|j�|_dS)Nr$r)rr'Z	Semaphore�_unfinished_tasksr-�_cond)r"r#r$r%r%r&r'szJoinableQueue.__init__cCstj|�|j|jfS)N)rr)rvru)r"r%r%r&r)szJoinableQueue.__getstate__cCs:tj||dd��|dd�\|_|_dS)N����rx)rr+rvru)r"r*r%r%r&r+szJoinableQueue.__setstate__TNcCs�|jj||�st�|j�Y|j�H|jdkrH|j�|jj|�|j	j
�|jj�WdQRXWdQRXdS)N)rr=rr.rvr2r>r1r?rurEr@)r"rArBrCr%r%r&rDs

zJoinableQueue.putc	CsR|j�B|jjd�s(td��|jjj�rG|jj�WdQRXdS)NFz!task_done() called too many times)rvrur=�
ValueErrorrJrMZ
notify_all)r"r%r%r&�	task_done's

zJoinableQueue.task_donec	Cs4|j�$|jjj�s)|jj�WdQRXdS)N)rvrurJrMrg)r"r%r%r&rb.s
zJoinableQueue.join)	rqrrrsr'r)r+rDrzrbr%r%r%r&r
sc@sXeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)rcCsjtjdd�\|_|_|j�|_|jj|_tj	dkrWd|_
n|j�|_
dS)NrFr)rrrrrrr;r<rrr)r"r$r%r%r&r'9szSimpleQueue.__init__cCs|j�S)N)r<)r"r%r%r&rLBszSimpleQueue.emptycCs)tj|�|j|j|j|jfS)N)r	r(rrrr)r"r%r%r&r)Es
zSimpleQueue.__getstate__cCs1|\|_|_|_|_|jj|_dS)N)rrrrr;r<)r"r*r%r%r&r+IszSimpleQueue.__setstate__c	Cs-|j�|jj�}WdQRXtj|�S)N)rrr9rrG)r"rHr%r%r&rIMs
zSimpleQueue.getc	CsVtj|�}|jdkr1|jj|�n!|j�|jj|�WdQRXdS)N)rrirrr7)r"rAr%r%r&rDSs

zSimpleQueue.putN)	rqrrrsr'rLr)r+rIrDr%r%r%r&r7s	)�__all__rrr,r/rFr_rfZqueuerrZ_multiprocessing�rr	�utilr
rrr
rZ	reductionr�objectrrcrrr%r%r%r&�<module>
s"(�	
*

?>