Your IP : 13.59.247.75


Current Path : /lib64/python3.6/multiprocessing/__pycache__/
Upload File :
Current File : //lib64/python3.6/multiprocessing/__pycache__/queues.cpython-36.opt-1.pyc

3


 \*�@s�dddgZddlZddlZddlZddlZddlZddlZddlZddlm	Z	m
Z
ddlZddlm
Z
ddlmZejjZdd	lmZmZmZmZmZGd
d�de�Ze�ZGdd�de�ZGdd�de�ZdS)
�Queue�SimpleQueue�
JoinableQueue�N)�Empty�Full�)�
connection)�context)�debug�info�Finalize�register_after_fork�
is_exitingc@s�eZdZd(dd�Zdd�Zdd�Zdd	�Zd)dd
�Zd*dd�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
dkrTd|_n
|j�|_|j|�|_d|_|j�tj
dkr�t|tj�dS)Nrr)�
SEM_VALUE_MAXF)�duplex�win32)Zsynchronizer�_maxsizer�Pipe�_reader�_writer�Lock�_rlock�os�getpid�_opid�sys�platform�_wlockZBoundedSemaphore�_sem�
_ignore_epipe�_after_forkr
r)�self�maxsize�ctx�r$�/usr/lib64/python3.6/queues.py�__init__$s




zQueue.__init__cCs.tj|�|j|j|j|j|j|j|j|j	fS)N)
r	�assert_spawningrrrrrrrr)r!r$r$r%�__getstate__9s
zQueue.__getstate__c	Cs0|\|_|_|_|_|_|_|_|_|j�dS)N)	rrrrrrrrr )r!�stater$r$r%�__setstate__>s$zQueue.__setstate__cCsbtd�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	CsP|jj||�st�|j�.|jdkr,|j�|jj|�|jj�WdQRXdS)N)	r�acquirerr-r1�
_start_threadr0�append�notify)r!�obj�block�timeoutr$r$r%�putPs
z	Queue.putc
Cs�|r2|dkr2|j�|j�}WdQRX|jj�nr|rBtj�|}|jj||�sTt�zB|rv|tj�}|j|�s�t�n|j�s�t�|j�}|jj�Wd|jj�Xt	j
|�S)N)rr9r�release�timeZ	monotonicr<rr;�_ForkingPickler�loads)r!rArB�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)rC)r!r@r$r$r%�
put_nowait�szQueue.put_nowaitcCs2d|_z|jj�Wd|j}|r,d|_|�XdS)NT)r4r�closer5)r!rQr$r$r%rQ�szQueue.closecCstd�|jr|j�dS)NzQueue.join_thread())r
r2)r!r$r$r%�join_thread�szQueue.join_threadcCs6td�d|_y|jj�Wntk
r0YnXdS)NzQueue.cancel_join_thread()T)r
r3r2Zcancel�AttributeError)r!r$r$r%�cancel_join_thread�szQueue.cancel_join_threadcCs�td�|jj�tjtj|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()ZQueueFeederThread)�target�args�nameTzdoing self._thread.start()z... done self._thread.start()�)Zexitpriority�
���)r
r0�clearr+ZThreadr�_feedr-r7rrrQrr1Zdaemon�startr3r�_finalize_join�weakref�refr2�_finalize_closer5)r!r$r$r%r=�s(




zQueue._start_threadcCs4td�|�}|dk	r(|j�td�ntd�dS)Nzjoining queue threadz... queue thread joinedz... queue thread already dead)r
�join)ZtwrZthreadr$r$r%r^�s
zQueue._finalize_joinc	Cs.td�|�|jt�|j�WdQRXdS)Nztelling queue thread to quit)r
r>�	_sentinelr?)�buffer�notemptyr$r$r%ra�s
zQueue._finalize_closecCsPtd�|j}|j}|j}|j}	t}
tjdkr<|j}|j}nd}�xy�|�z|sX|�Wd|�Xybx\|	�}
|
|
kr�td�|�dStj	|
�}
|dkr�||
�qh|�z||
�Wd|�XqhWWnt
k
r�YnXWqDtk
�rF}zJ|�rt|dd�t
jk�rdSt��r&td|�dSddl}|j�WYdd}~XqDXqDWdS)Nz$starting thread to feed data to piperz%feeder thread got sentinel -- exiting�errnorzerror in queue thread: %s)r
r<rD�wait�popleftrcrrrF�dumps�
IndexError�	Exception�getattrrfZEPIPErr�	traceback�	print_exc)rdrer6Z	writelockrQZignore_epipeZnacquireZnreleaseZnwaitZbpopleft�sentinelZwacquireZwreleaser@�ermr$r$r%r\�sR





zQueue._feed)r)TN)TN)�__name__�
__module__�__qualname__r&r(r*r rCrIrKrLrNrOrPrQrRrTr=�staticmethodr^rar\r$r$r$r%r"s$




c@s@eZdZddd�Zdd�Zdd�Zdd
d�Zdd
�Zdd�Zd	S)rrcCs*tj|||d�|jd�|_|j�|_dS)N)r#r)rr&Z	Semaphore�_unfinished_tasksr,�_cond)r!r"r#r$r$r%r&szJoinableQueue.__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__TNcCsl|jj||�st�|j�J|j�8|jdkr4|j�|jj|�|j	j
�|jj�WdQRXWdQRXdS)N)rr<rr-rvr1r=r0r>rurDr?)r!r@rArBr$r$r%rCs

zJoinableQueue.putc	Cs@|j�0|jjd�std��|jjj�r2|jj�WdQRXdS)NFz!task_done() called too many times)rvrur<�
ValueErrorrJrMZ
notify_all)r!r$r$r%�	task_done's
zJoinableQueue.task_donec	Cs,|j�|jjj�s|jj�WdQRXdS)N)rvrurJrMrg)r!r$r$r%rb.szJoinableQueue.join)r)TN)	rqrrrsr&r(r*rCrzrbr$r$r$r%r
s

c@s<eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)rcCsHtjdd�\|_|_|j�|_|jj|_tj	dkr:d|_
n
|j�|_
dS)NF)rr)rrrrrrr:r;rrr)r!r#r$r$r%r&9s


zSimpleQueue.__init__cCs
|j�S)N)r;)r!r$r$r%rLBszSimpleQueue.emptycCstj|�|j|j|j|jfS)N)r	r'rrrr)r!r$r$r%r(Es
zSimpleQueue.__getstate__cCs"|\|_|_|_|_|jj|_dS)N)rrrrr:r;)r!r)r$r$r%r*IszSimpleQueue.__setstate__c	Cs&|j�|jj�}WdQRXtj|�S)N)rrr8rFrG)r!rHr$r$r%rIMszSimpleQueue.getc	CsDtj|�}|jdkr"|jj|�n|j�|jj|�WdQRXdS)N)rFrirrr6)r!r@r$r$r%rCSs


zSimpleQueue.putN)	rqrrrsr&rLr(r*rIrCr$r$r$r%r7s	)�__all__rrr+r.rEr_rfZqueuerrZ_multiprocessing�rr	Z	reductionZForkingPicklerrF�utilr
rrr
r�objectrrcrrr$r$r$r%�<module>
s$
b
*