Your IP : 172.28.240.42


Current Path : /usr/lib/python2.7/multiprocessing/
Upload File :
Current File : //usr/lib/python2.7/multiprocessing/queues.pyc


|_c@s8dddgZddlZddlZddlZddlZddlZddlZddlZddlm	Z	m
Z
ddlZddlm
Z
ddlmZmZmZmZddlmZmZmZmZdd	lmZdefd
YZeZdefdYZdefdYZdS(
tQueuetSimpleQueuet
JoinableQueueiN(tEmptytFull(tPipe(tLocktBoundedSemaphoret	Semaphoret	Condition(tdebugtinfotFinalizetregister_after_fork(tassert_spawningcBseZddZdZdZdZeddZeddZ	dZ
dZd	Zd
Z
dZdZd
ZdZdZedZedZedZRS(icCs|dkrtjj}n||_tdt\|_|_t|_	t
j|_t
jdkrud|_nt|_t||_|jt
jdkrt|tjndS(Nitduplextwin32(t_multiprocessingtSemLockt
SEM_VALUE_MAXt_maxsizeRtFalset_readert_writerRt_rlocktostgetpidt_opidtsystplatformtNonet_wlockRt_semt_after_forkR
R(tselftmaxsize((s,/usr/lib/python2.7/multiprocessing/queues.pyt__init__:s	
cCs8t||j|j|j|j|j|j|jfS(N(RRRRRRR R(R"((s,/usr/lib/python2.7/multiprocessing/queues.pyt__getstate__Ls
cCs>|\|_|_|_|_|_|_|_|jdS(N(RRRRRR RR!(R"tstate((s,/usr/lib/python2.7/multiprocessing/queues.pyt__setstate__Qs0cCstdtjtj|_tj|_d|_	d|_
t|_t|_
d|_|jj|_|jj|_|jj|_dS(NsQueue._after_fork()(R
t	threadingR	Rt	_notemptytcollectionstdequet_bufferRt_threadt_jointhreadRt_joincancelledt_closedt_closeRtsendt_sendRtrecvt_recvtpollt_poll(R"((s,/usr/lib/python2.7/multiprocessing/queues.pyR!Vs
					cCs|jst|jj||s.tn|jjz=|jdkrZ|jn|j	j
||jjWd|jjXdS(N(
R0tAssertionErrorR tacquireRR)R-Rt
_start_threadR,tappendtnotifytrelease(R"tobjtblockttimeout((s,/usr/lib/python2.7/multiprocessing/queues.pytputcs	

cCs|rT|dkrT|jjz!|j}|jj|SWd|jjXn|rmtj|}n|jj||stnzt|r|tj}|dks|j|rtqn|jstn|j}|jj|SWd|jjXdS(Ni(	RRR9R5R R=ttimeRR7(R"R?R@trestdeadline((s,/usr/lib/python2.7/multiprocessing/queues.pytgetqs,

		
cCs|j|jjjS(N(RR t_semlockt
_get_value(R"((s,/usr/lib/python2.7/multiprocessing/queues.pytqsizescCs|jS(N(R7(R"((s,/usr/lib/python2.7/multiprocessing/queues.pytemptyscCs|jjjS(N(R RFt_is_zero(R"((s,/usr/lib/python2.7/multiprocessing/queues.pytfullscCs
|jtS(N(RER(R"((s,/usr/lib/python2.7/multiprocessing/queues.pyt
get_nowaitscCs|j|tS(N(RAR(R"R>((s,/usr/lib/python2.7/multiprocessing/queues.pyt
put_nowaitscCs0t|_|jj|jr,|jndS(N(tTrueR0RtcloseR1(R"((s,/usr/lib/python2.7/multiprocessing/queues.pyROs	
	cCs3td|jst|jr/|jndS(NsQueue.join_thread()(R
R0R8R.(R"((s,/usr/lib/python2.7/multiprocessing/queues.pytjoin_threads
	cCs<tdt|_y|jjWntk
r7nXdS(NsQueue.cancel_join_thread()(R
RNR/R.tcanceltAttributeError(R"((s,/usr/lib/python2.7/multiprocessing/queues.pytcancel_join_threads
	
c	Cstd|jjtjdtjd|j|j|j|j	|j
jfdd|_t
|j_td|jjtd|jst|jtjtj|jgdd	|_nt|tj|j|jgdd
|_dS(NsQueue._start_thread()ttargettargstnametQueueFeederThreadsdoing self._thread.start()s... done self._thread.start()texitpriorityii
(R
R,tclearR(tThreadRt_feedR)R3RRROR-RNtdaemontstartR/Rt_finalize_jointweakreftrefR.t_finalize_closeR1(R"((s,/usr/lib/python2.7/multiprocessing/queues.pyR:s(

		


		cCsDtd|}|dk	r6|jtdn
tddS(Nsjoining queue threads... queue thread joineds... queue thread already dead(R
Rtjoin(ttwrtthread((s,/usr/lib/python2.7/multiprocessing/queues.pyR^s
	

cCsAtd|jz|jt|jWd|jXdS(Nstelling queue thread to quit(R
R9R;t	_sentinelR<R=(tbuffertnotempty((s,/usr/lib/python2.7/multiprocessing/queues.pyRas


cCstdddlm}|j}|j}|j}|j}	t}
tj	dkrh|j}|j}nd}yx|z|s|nWd|Xymxf|	}
|
|
krtd|dS|dkr||
q|z||
Wd|XqWqttk
rqtXqtWnZtk
r{}y3|rMt
d|nddl}|jWq|tk
rwq|XnXdS(Ns$starting thread to feed data to pipei(t
is_exitingRs%feeder thread got sentinel -- exitingserror in queue thread: %si(R
tutilRhR9R=twaittpopleftReRRRt
IndexErrort	ExceptionRt	tracebackt	print_exc(RfRgR2t	writelockRORhtnacquiretnreleasetnwaittbpoplefttsentineltwacquiretwreleaseR>teRn((s,/usr/lib/python2.7/multiprocessing/queues.pyR[sR
						


	
N(t__name__t
__module__R$R%R'R!RNRRARERHRIRKRLRMRORPRSR:tstaticmethodR^RaR[(((s,/usr/lib/python2.7/multiprocessing/queues.pyR8s$			
									 

cBsGeZddZdZdZeddZdZdZ	RS(icCs/tj||td|_t|_dS(Ni(RR$Rt_unfinished_tasksR	t_cond(R"R#((s,/usr/lib/python2.7/multiprocessing/queues.pyR$)scCstj||j|jfS(N(RR%R}R|(R"((s,/usr/lib/python2.7/multiprocessing/queues.pyR%.scCs.tj||d |d\|_|_dS(Ni(RR'R}R|(R"R&((s,/usr/lib/python2.7/multiprocessing/queues.pyR'1scCs|jst|jj||s.tn|jj|jjzJ|jdkrg|j	n|j
j||jj
|jjWd|jj
|jj
XdS(N(R0R8R R9RR)R}R-RR:R,R;R|R=R<(R"R>R?R@((s,/usr/lib/python2.7/multiprocessing/queues.pyRA5s	




cCsi|jjzG|jjts1tdn|jjjrS|jjnWd|jjXdS(Ns!task_done() called too many times(	R}R9R|Rt
ValueErrorRFRJt
notify_allR=(R"((s,/usr/lib/python2.7/multiprocessing/queues.pyt	task_doneFs
cCsH|jjz&|jjjs2|jjnWd|jjXdS(N(R}R9R|RFRJRjR=(R"((s,/usr/lib/python2.7/multiprocessing/queues.pyRbPs

N(
RyRzR$R%R'RNRRARRb(((s,/usr/lib/python2.7/multiprocessing/queues.pyR's			
cBs5eZdZdZdZdZdZRS(cCs\tdt\|_|_t|_tjdkrBd|_	nt|_	|j
dS(NRR(RRRRRRRRRRt
_make_methods(R"((s,/usr/lib/python2.7/multiprocessing/queues.pyR$^scCs|jjS(N(RR6(R"((s,/usr/lib/python2.7/multiprocessing/queues.pyRIgscCs&t||j|j|j|jfS(N(RRRRR(R"((s,/usr/lib/python2.7/multiprocessing/queues.pyR%js
cCs,|\|_|_|_|_|jdS(N(RRRRR(R"R&((s,/usr/lib/python2.7/multiprocessing/queues.pyR'nscs|jj|jj|jjfd}||_|jdkrd|jj	|_
nC|jj	|jj|jjfd}||_
dS(Ncs!zSWdXdS(N(((tracquireR4trrelease(s,/usr/lib/python2.7/multiprocessing/queues.pyREuscs$z|SWdXdS(N((R>(RvRwR2(s,/usr/lib/python2.7/multiprocessing/queues.pyRAs(RR4RR9R=RERRRR2RA(R"RERA((RvRR2RwR4Rs,/usr/lib/python2.7/multiprocessing/queues.pyRrs	(RyRzR$RIR%R'R(((s,/usr/lib/python2.7/multiprocessing/queues.pyR\s
					(t__all__RRR(R*RBtatexitR_RRRRtmultiprocessingRtmultiprocessing.synchronizeRRRR	tmultiprocessing.utilR
RRR
tmultiprocessing.forkingRtobjectReRR(((s,/usr/lib/python2.7/multiprocessing/queues.pyt<module>#s"""	
5