Your IP : 172.28.240.42


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


|_c@sdZddlZyddlZWnek
rBeje=nXddlZddlmZ	m
Zddlm
Zddddd	d
ddd
ddddddddgZejZejZejZejZ[ejddeddddeZdefdYZeaea dZ!dZ"eZ#d Z$d!efd"YZ%d#Z&d$efd%YZ'd&Z(d'efd(YZ)d)Z*d*e)fd+YZ+d,Z,d-efd.YZ-d/a.d0d1Z/ea0iZ1iZ2defd2YZ3d3Z4d4e3fd5YZ5d6e3fd7YZ6d8Z7d9e3fd:YZ8d;Z9e9Z:d<Z;e;Z<d=Z=d>Z>dd?lm?Z?e6j@ZAydd@lmBZCWn!ek
rddAlDmCZCnXdBZEdCZFedDkreFndS(Es;Thread module emulating a subset of Java's threading model.iN(ttimetsleep(t
format_exctactiveCounttactive_countt	Conditiont
currentThreadtcurrent_threadt	enumeratetEventtLocktRLockt	SemaphoretBoundedSemaphoretThreadtTimert
setprofiletsettracetlocalt
stack_sizetignoretcategorytmodulet	threadingtmessages
sys.exc_cleart_VerbosecBseZddZdZRS(cCs"|dkrt}n||_dS(N(tNonet_VERBOSEt_Verbose__verbose(tselftverbose((s/usr/lib/python2.7/threading.pyt__init__9s	cGsr|jrn||}t}yt|j}Wntk
rJd|}nXd||f}tjj|ndS(Ns<OS thread %d>s%s: %s
(Rt
_get_identt_activetnametKeyErrort_syststderrtwrite(RtformattargstidentR"((s/usr/lib/python2.7/threading.pyt_note>s	
	
N(t__name__t
__module__RRR*(((s/usr/lib/python2.7/threading.pyR7scCs
|adS(N(t
_profile_hook(tfunc((s/usr/lib/python2.7/threading.pyRXscCs
|adS(N(t_trace_hook(R.((s/usr/lib/python2.7/threading.pyR\scOs
t||S(N(t_RLock(R(tkwargs((s/usr/lib/python2.7/threading.pyRdsR0cBs\eZd	dZdZddZeZdZdZdZ	dZ
dZRS(
cCs2tj||t|_d|_d|_dS(Ni(RRt_allocate_lockt
_RLock__blockRt
_RLock__ownert
_RLock__count(RR((s/usr/lib/python2.7/threading.pyRis	cCsH|j}yt|j}Wntk
r-nXd|jj||jfS(Ns<%s owner=%r count=%d>(R4R!R"R#t	__class__R+R5(Rtowner((s/usr/lib/python2.7/threading.pyt__repr__os	
icCst}|j|kr?|jd|_|jd||dS|jj|}|r||_d|_|jd||n|jd|||S(Nis!%s.acquire(%s): recursive successs%s.acquire(%s): initial successs%s.acquire(%s): failure(R R4R5R*R3tacquire(Rtblockingtmetrc((s/usr/lib/python2.7/threading.pyR9xs			cCsx|jtkr!tdn|jd|_}|sdd|_|jj|jd|n|jd|dS(Nscannot release un-acquired lockis%s.release(): final releases%s.release(): non-final release(R4R tRuntimeErrorR5RR3treleaseR*(Rtcount((s/usr/lib/python2.7/threading.pyR>s	
cCs|jdS(N(R>(Rtttvttb((s/usr/lib/python2.7/threading.pyt__exit__scCs?|\}}|jj||_||_|jd|dS(Ns%s._acquire_restore()(R3R9R5R4R*(Rtcount_ownerR?R7((s/usr/lib/python2.7/threading.pyt_acquire_restores

		cCsK|jd||j}d|_|j}d|_|jj||fS(Ns%s._release_save()i(R*R5R4RR3R>(RR?R7((s/usr/lib/python2.7/threading.pyt
_release_saves				
cCs|jtkS(N(R4R (R((s/usr/lib/python2.7/threading.pyt	_is_ownedsN(R+R,RRR8R9t	__enter__R>RCRERFRG(((s/usr/lib/python2.7/threading.pyR0gs			
			
cOs
t||S(N(t
_Condition(R(R1((s/usr/lib/python2.7/threading.pyRsRIcBsteZdddZdZdZdZdZdZdZ	ddZ
dd	Zd
ZeZ
RS(cCstj|||dkr(t}n||_|j|_|j|_y|j|_Wntk
rlnXy|j	|_	Wntk
rnXy|j
|_
Wntk
rnXg|_dS(N(RRRRt_Condition__lockR9R>RFtAttributeErrorRERGt_Condition__waiters(RtlockR((s/usr/lib/python2.7/threading.pyRs&	


cCs
|jjS(N(RJRH(R((s/usr/lib/python2.7/threading.pyRHscGs|jj|S(N(RJRC(RR(((s/usr/lib/python2.7/threading.pyRCscCsd|jt|jfS(Ns<Condition(%s, %d)>(RJtlenRL(R((s/usr/lib/python2.7/threading.pyR8scCs|jjdS(N(RJR>(R((s/usr/lib/python2.7/threading.pyRFscCs|jjdS(N(RJR9(Rtx((s/usr/lib/python2.7/threading.pyREscCs+|jjdr#|jjtStSdS(Ni(RJR9R>tFalsetTrue(R((s/usr/lib/python2.7/threading.pyRGs
cCsY|jstdnt}|j|jj||j}z|dkrv|j|jd|nt	|}d}x`t
r|jd}|rPn|t	}|dkrPnt|d|d}t|qW|s0|jd||y|jj
|WqCtk
r,qCXn|jd||Wd|j|XdS(	Nscannot wait on un-acquired locks%s.wait(): got itgMb@?iig?s%s.wait(%s): timed outs%s.wait(%s): got it(RGR=R2R9RLtappendRFRR*t_timeRQtmint_sleeptremovet
ValueErrorRE(Rttimeouttwaitertsaved_statetendtimetdelaytgotitt	remaining((s/usr/lib/python2.7/threading.pytwaits:	


	

icCs|jstdn|j}|| }|sH|jd|dS|jd|||dkridpldx=|D]5}|jy|j|Wqwtk
rqwXqwWdS(Ns!cannot notify on un-acquired locks%s.notify(): no waiterss"%s.notify(): notifying %d waiter%sitst(RGR=RLR*R>RVRW(RtnRLtwaitersRY((s/usr/lib/python2.7/threading.pytnotifys	



cCs|jt|jdS(N(RdRNRL(R((s/usr/lib/python2.7/threading.pyt	notifyAll&sN(R+R,RRRHRCR8RFRERGR_RdRet
notify_all(((s/usr/lib/python2.7/threading.pyRIs							*	cOs
t||S(N(t
_Semaphore(R(R1((s/usr/lib/python2.7/threading.pyR,sRgcBs;eZdddZddZeZdZdZRS(icCsJ|dkrtdntj||tt|_||_dS(Nis$semaphore initial value must be >= 0(RWRRRR
t_Semaphore__condt_Semaphore__value(RtvalueR((s/usr/lib/python2.7/threading.pyR3s
cCst}|jjxo|jdkrX|s/Pn|jd|||j|jjqW|jd|_|jd||jt}|jj|S(Nis)%s.acquire(%s): blocked waiting, value=%sis%s.acquire: success, value=%s(RPRhR9RiR*R_RQR>(RR:R<((s/usr/lib/python2.7/threading.pyR9:s
		

cCsQ|jj|jd|_|jd||j|jj|jjdS(Nis%s.release: success, value=%s(RhR9RiR*RdR>(R((s/usr/lib/python2.7/threading.pyR>Os
	

cCs|jdS(N(R>(RR@RARB((s/usr/lib/python2.7/threading.pyRCXsN(R+R,RRR9RHR>RC(((s/usr/lib/python2.7/threading.pyRg/s
		cOs
t||S(N(t_BoundedSemaphore(R(R1((s/usr/lib/python2.7/threading.pyR
\sRkcBs&eZdZdddZdZRS(s6Semaphore that checks that # releases is <= # acquiresicCs tj|||||_dS(N(RgRt_initial_value(RRjR((s/usr/lib/python2.7/threading.pyRascCs+|j|jkrtdntj|S(Ns!Semaphore released too many times(RiRlRWRgR>(R((s/usr/lib/python2.7/threading.pyR>esN(R+R,t__doc__RRR>(((s/usr/lib/python2.7/threading.pyRk_scOs
t||S(N(t_Event(R(R1((s/usr/lib/python2.7/threading.pyR	ksRncBsJeZddZdZdZeZdZdZddZ	RS(cCs/tj||tt|_t|_dS(N(RRRR
t_Event__condRPt_Event__flag(RR((s/usr/lib/python2.7/threading.pyRrscCs|jjdS(N(RoR(R((s/usr/lib/python2.7/threading.pyt_reset_internal_lockswscCs|jS(N(Rp(R((s/usr/lib/python2.7/threading.pytisSet{scCs<|jjzt|_|jjWd|jjXdS(N(RoR9RQRpRfR>(R((s/usr/lib/python2.7/threading.pytsets

	cCs/|jjz
t|_Wd|jjXdS(N(RoR9RPRpR>(R((s/usr/lib/python2.7/threading.pytclears

cCsI|jjz'|js,|jj|n|jSWd|jjXdS(N(RoR9RpR_R>(RRX((s/usr/lib/python2.7/threading.pyR_s
	N(
R+R,RRRqRrtis_setRsRtR_(((s/usr/lib/python2.7/threading.pyRnns				is	Thread-%dcCstda|tS(Ni(t_counter(ttemplate((s/usr/lib/python2.7/threading.pyt_newnames
cBs4eZeZejZejZdddddddZ
dZedZ
dZdZdZdZdZdZd	Zd
ZdZddZed
ZejdZedZdZeZedZejdZdZdZdZ dZ!RS(cCs|dkstdtj|||dkr=i}n||_t|pUt|_||_||_	|j
|_d|_t
|_t|_tt|_t|_tj|_dS(Ns#group argument must be None for now(RtAssertionErrorRRt_Thread__targettstrRxt
_Thread__namet
_Thread__argst_Thread__kwargst_set_daemont_Thread__daemonict_Thread__identR	t_Thread__startedRPt_Thread__stoppedRR
t_Thread__blockRQt_Thread__initializedR$R%t_Thread__stderr(RtgroupttargetR"R(R1R((s/usr/lib/python2.7/threading.pyRs							cCs0t|dr|jjn|jjdS(NR(thasattrRRRRq(R((s/usr/lib/python2.7/threading.pyRqscCs|jS(N(R(R((s/usr/lib/python2.7/threading.pyt_blockscCs
tjS(N(Rtdaemon(R((s/usr/lib/python2.7/threading.pyRscCs|jstdd}|jjr3d}n|jrEd}n|jr[|d7}n|jdk	r~|d|j7}nd|jj	|j
|fS(Ns Thread.__init__() was not calledtinitialtstartedtstoppeds daemons %ss<%s(%s, %s)>(RRyRRuRRRRR6R+R|(Rtstatus((s/usr/lib/python2.7/threading.pyR8s				
cCs|jstdn|jjr6tdn|jd|t|t|<WdQXyt|jdWn(t	k
rtt|=WdQXnX|jj
dS(Nsthread.__init__() not calleds threads can only be started onces%s.start(): starting thread((RR=RRuR*t_active_limbo_lockt_limbot_start_new_threadt_Thread__bootstrapt	ExceptionR_(R((s/usr/lib/python2.7/threading.pytstarts	

cCs@z&|jr%|j|j|jnWd|`|`|`XdS(N(RzR}R~(R((s/usr/lib/python2.7/threading.pytruns	cCs8y|jWn#|jr-tdkr-dSnXdS(N(t_Thread__bootstrap_innerRR$R(R((s/usr/lib/python2.7/threading.pyt__bootstraps
cCst|_dS(N(R R(R((s/usr/lib/python2.7/threading.pyt
_set_identsc
Cs	z|j|jjt|t|j<t|=WdQX|jd|trq|jd|t	j
tntr|jd|t	jtnz,y|j
Wntk
r|jd|n|jd|t	rt	jjd|jtfq|j\}}}z|jd|jdIJ|jd	IJxB|r|jd
|jjj|j|jjjfIJ|j}qGW|jd||fIJWd~~~XnX|jd|Wd|jXWdt'|jytt=WnnXWdQXXdS(
Ns %s.__bootstrap(): thread starteds(%s.__bootstrap(): registering trace hooks*%s.__bootstrap(): registering profile hooks#%s.__bootstrap(): raised SystemExits%%s.__bootstrap(): unhandled exceptionsException in thread %s:
%s
sException in thread s2 (most likely raised during interpreter shutdown):s"Traceback (most recent call last):s  File "%s", line %s, in %ss%s: %ss%s.__bootstrap(): normal return(RRRsRR!RRR*R/R$RR-RRt
SystemExitR%R&R"t_format_exct_Thread__exc_infoRttb_frametf_codetco_filenamet	tb_linenotco_namettb_nextt_Thread__exc_cleart
_Thread__stopR (Rtexc_typet	exc_valuetexc_tb((s/usr/lib/python2.7/threading.pyt__bootstrap_inners^





	

cCsGt|dsdS|jjt|_|jj|jjdS(NR(RRR9RQRRfR>(R((s/usr/lib/python2.7/threading.pyt__stop_s
	
cCsHyttt=WdQXWn&tk
rCdtjkrDqDnXdS(sARemove current thread from the dict of currently running threads.Ntdummy_threading(RR!R R#R$tmodules(R((s/usr/lib/python2.7/threading.pyt__deleteis
cCs<|jstdn|jjs6tdn|tkrTtdn|jsp|jd|n|jjz|dkrx|js|jj
qW|jd|njt|}xZ|js|t}|dkr|jd|Pn|jj
|qW|jd|Wd|jjXdS(NsThread.__init__() not calleds'cannot join thread before it is startedscannot join current threads%%s.join(): waiting until thread stopss%s.join(): thread stoppedis%s.join(): timed out(
RR=RRuRRR*RR9RR_RSR>(RRXtdeadlineR\((s/usr/lib/python2.7/threading.pytjoins.		


cCs|jstd|jS(NsThread.__init__() not called(RRyR|(R((s/usr/lib/python2.7/threading.pyR"scCs(|jstdt||_dS(NsThread.__init__() not called(RRyR{R|(RR"((s/usr/lib/python2.7/threading.pyR"scCs|jstd|jS(NsThread.__init__() not called(RRyR(R((s/usr/lib/python2.7/threading.pyR)scCs,|jstd|jjo+|jS(NsThread.__init__() not called(RRyRRuR(R((s/usr/lib/python2.7/threading.pytisAlivescCs|jstd|jS(NsThread.__init__() not called(RRyR(R((s/usr/lib/python2.7/threading.pyRscCsC|jstdn|jjr6tdn||_dS(NsThread.__init__() not calleds)cannot set daemon status of active thread(RR=RRuR(Rtdaemonic((s/usr/lib/python2.7/threading.pyRs
	cCs|jS(N(R(R((s/usr/lib/python2.7/threading.pytisDaemonscCs
||_dS(N(R(RR((s/usr/lib/python2.7/threading.pyt	setDaemonscCs|jS(N(R"(R((s/usr/lib/python2.7/threading.pytgetNamescCs
||_dS(N(R"(RR"((s/usr/lib/python2.7/threading.pytsetNamesN(("R+R,RPRR$texc_infoRt	exc_clearRRRRqtpropertyRRR8RRRRRRt_Thread__deleteRR"tsetterR)Rtis_aliveRRRRR(((s/usr/lib/python2.7/threading.pyRs8						
						J	
	#!				cOs
t||S(N(t_Timer(R(R1((s/usr/lib/python2.7/threading.pyRsRcBs/eZdZgidZdZdZRS(sCall a function after a specified number of seconds:

    t = Timer(30.0, f, args=[], kwargs={})
    t.start()
    t.cancel() # stop the timer's action if it's still waiting
    cCsAtj|||_||_||_||_t|_dS(N(RRtintervaltfunctionR(R1R	tfinished(RRRR(R1((s/usr/lib/python2.7/threading.pyRs
				cCs|jjdS(s(Stop the timer if it hasn't finished yetN(RRs(R((s/usr/lib/python2.7/threading.pytcancelscCsL|jj|j|jjs;|j|j|jn|jjdS(N(RR_RRuRR(R1Rs(R((s/usr/lib/python2.7/threading.pyRs(R+R,RmRRR(((s/usr/lib/python2.7/threading.pyRs	t_MainThreadcBs#eZdZdZdZRS(cCsHtj|dd|jj|jt|tt<WdQXdS(NR"t
MainThread(RRRRsRRR!R (R((s/usr/lib/python2.7/threading.pyRs


cCstS(N(RP(R((s/usr/lib/python2.7/threading.pyRscCsj|jt}|r,|jd|nx|rK|jt}q/W|jd||jdS(Ns%s: waiting for other threadss%s: exiting(Rt_pickSomeNonDaemonThreadR*RR(RR@((s/usr/lib/python2.7/threading.pyt	_exitfunc	s
		

(R+R,RRR(((s/usr/lib/python2.7/threading.pyRs		cCs2x+tD] }|jr
|jr
|Sq
WdS(N(RRRR(R@((s/usr/lib/python2.7/threading.pyRst_DummyThreadcBs&eZdZdZddZRS(cCsTtj|dtd|`|jj|jt|tt	<WdQXdS(NR"sDummy-%d(
RRRxRRRsRRR!R (R((s/usr/lib/python2.7/threading.pyR's

cCstS(N(RQ(R((s/usr/lib/python2.7/threading.pyR4scCststddS(Nscannot join a dummy thread(RPRy(RRX((s/usr/lib/python2.7/threading.pyR7sN(R+R,RRRR(((s/usr/lib/python2.7/threading.pyR%s	
	cCs+yttSWntk
r&tSXdS(N(R!R R#R(((s/usr/lib/python2.7/threading.pyR=s
cCs%tttttSWdQXdS(N(RRNR!R(((s/usr/lib/python2.7/threading.pyRFscCstjtjS(N(R!tvaluesR(((s/usr/lib/python2.7/threading.pyt
_enumerateLscCs%ttjtjSWdQXdS(N(RR!RR(((s/usr/lib/python2.7/threading.pyRPs(R(t_local(RcCstai}t}txetjD]W}t|drN|jn||kryt}||_|||<q,|j	q,Wt
jtjtj|t
tdkstWdQXdS(NRqi(R2RRR!t
itervaluesRRqR RRRRttupdateRNRy(t
new_activetcurrenttthreadR)((s/usr/lib/python2.7/threading.pyt_after_forkes 		
		



cCsdtfdY}dtfdY}dtfdY}d}d}d	}||}g}xAt|D]3}|||}	d
|d|	_|j|	qsW||||}
x"|D]}	|	jtdqW|
jx|D]}	|	jqW|
jdS(
NtBoundedQueuecBs#eZdZdZdZRS(cSsVtj|t|_t|j|_t|j|_||_t|_	dS(N(
RRRtmonRR<twctlimittdequetqueue(RR((s/usr/lib/python2.7/threading.pyRs
	cSs|jjx9t|j|jkrH|jd||jjqW|jj||jd|t|j|j	j
|jjdS(Nsput(%s): queue fulls put(%s): appended, length now %d(RR9RNRRR*RR_RRR<RdR>(Rtitem((s/usr/lib/python2.7/threading.pytputs
	
cSs|jjx'|js6|jd|jjqW|jj}|jd|t|j|jj	|jj
|S(Nsget(): queue emptysget(): got %s, %d left(RR9RR*R<R_tpopleftRNRRdR>(RR((s/usr/lib/python2.7/threading.pytgets



(R+R,RRR(((s/usr/lib/python2.7/threading.pyRs		tProducerThreadcBseZdZdZRS(cSs)tj|dd||_||_dS(NR"tProducer(RRRtquota(RRR((s/usr/lib/python2.7/threading.pyRs	cSshddlm}d}xK||jkrc|d}|jjd|j|ft|dqWdS(Ni(trandomiis%s.%dgh㈵>(RRRRR"RU(RRtcounter((s/usr/lib/python2.7/threading.pyRs
(R+R,RR(((s/usr/lib/python2.7/threading.pyRs	tConsumerThreadcBseZdZdZRS(cSs)tj|dd||_||_dS(NR"tConsumer(RRRR?(RRR?((s/usr/lib/python2.7/threading.pyRs	cSs>x7|jdkr9|jj}|GH|jd|_qWdS(Nii(R?RR(RR((s/usr/lib/python2.7/threading.pyRs(R+R,RR(((s/usr/lib/python2.7/threading.pyRs	iiisProducer-%digư>(RRtrangeR"RRRRUR(RRRtNPtQLtNItQtPtiR@tC((s/usr/lib/python2.7/threading.pyt_tests( 




t__main__(GRmtsysR$RtImportErrorRR+twarningsRRSRRUt	tracebackRRt__all__tstart_new_threadRt
allocate_lockR2t	get_identR terrortThreadErrortfilterwarningstDeprecationWarningRPRtobjectRRR-R/RRR
RR0RRIRRgR
RkR	RnRvRxRR!RRRRRRRRRRRRRRRt	_shutdownRRt_threading_localRR(((s/usr/lib/python2.7/threading.pyt<module>s

					
			M	u	-		+	7						
	%	R