Viewing File: /opt/alt/python35/lib64/python3.5/__pycache__/threading.cpython-35.opt-2.pyc



]@sOddlZddlZddlmZddlmZddl	m
Z
ddlmZ
mZyddlmZWn"ek
rddlmZYnXddd	d
ddd
ddddddddddgZejZejZejZejZejZy
ejZWne k
r$dZYnXej!Z![da"da#ddZ$ddZ%eZ&dd
ZGdddZ'e'Z(GdddZ)GdddZ*Gddde*Z+Gd ddZ,Gd!ddZ-Gd"d#d#e.Z/ej0Z1e1d$d%d&Z2ea3iZ4iZ5e
Z6Gd'ddZ7Gd(dde7Z8Gd)d*d*e7Z9Gd+d,d,e7Z:d-d	Z;e;Z<d.dZ=e=Z>d/d0Z?d1d
Z@dd2lmAZAe9aBd3d4ZCd5d6ZDd7d8ZEydd9lmFZGWn"ek
r>dd:lHmGZGYnXd;d<ZIdS)=N)	monotonic)
format_exc)WeakSet)islicecount)dequeactive_count	Conditioncurrent_thread	enumerateEventLockRLock	SemaphoreBoundedSemaphoreThreadBarrierTimerThreadError
setprofilesettracelocal
stack_sizecCs
|adS)N)
_profile_hook)funcr./opt/alt/python35/lib64/python3.5/threading.pyr0scCs
|adS)N)_trace_hook)rrrrr:scOs&tdkrt||St||S)N)_CRLock_PyRLock)argskwargsrrrrHs	
c@s|eZdZddZddZddddZeZd	d
ZddZd
dZ	ddZ
ddZdS)_RLockcCs"t|_d|_d|_dS)Nr)_allocate_lock_block_owner_count)selfrrr__init___s	z_RLock.__init__cCsy|j}yt|j}Wntk
r.YnXd|jjrGdnd|jj|jj||j	t
t|fS)Nz)<%s %s.%s object owner=%r count=%d at %s>lockedunlocked)r%_activenameKeyErrorr$r)	__class__
__module____qualname__r&hexid)r'ownerrrr__repr__ds	
		z_RLock.__repr__TcCs\t}|j|kr+|jd7_dS|jj||}|rX||_d|_|S)Nr5)	get_identr%r&r$acquire)r'blockingtimeoutmercrrrr7ss			z_RLock.acquirecCsR|jtkrtd|jd|_}|sNd|_|jjdS)Nzcannot release un-acquired lockr5)r%r6RuntimeErrorr&r$release)r'rrrrr=s	z_RLock.releasecCs|jdS)N)r=)r'tvtbrrr__exit__sz_RLock.__exit__cCs#|jj|\|_|_dS)N)r$r7r&r%)r'staterrr_acquire_restores
z_RLock._acquire_restorecCsV|jdkrtd|j}d|_|j}d|_|jj||fS)Nrzcannot release un-acquired lock)r&r<r%r$r=)r'rr3rrr
_release_saves				
z_RLock._release_savecCs|jtkS)N)r%r6)r'rrr	_is_ownedsz_RLock._is_ownedN)__name__r/r0r(r4r7	__enter__r=rArCrDrErrrrr"Us
$
r"c@seZdZdddZddZddZdd	Zd
dZdd
ZddZ	dddZ
dddZdddZddZ
e
ZdS)r	NcCs|dkrt}||_|j|_|j|_y|j|_Wntk
rZYnXy|j|_Wntk
rYnXy|j|_Wntk
rYnXt|_	dS)N)
r_lockr7r=rDAttributeErrorrCrE_deque_waiters)r'lockrrrr(s$		


zCondition.__init__cCs
|jjS)N)rIrH)r'rrrrHszCondition.__enter__cGs|jj|S)N)rIrA)r'r rrrrAszCondition.__exit__cCsd|jt|jfS)Nz<Condition(%s, %d)>)rIlenrL)r'rrrr4szCondition.__repr__cCs|jjdS)N)rIr=)r'rrrrDszCondition._release_savecCs|jjdS)N)rIr7)r'xrrrrCszCondition._acquire_restorecCs+|jjdr#|jjdSdSdS)NrFT)rIr7r=)r'rrrrEs
zCondition._is_ownedcCs|jstdt}|j|jj||j}d}zW|dkro|jd}n0|dkr|jd|}n|jd}|SWd|j||sy|jj|Wnt	k
rYnXXdS)Nzcannot wait on un-acquired lockFTr)
rEr<r#r7rLappendrDrCremove
ValueError)r'r9waitersaved_stategotitrrrwaits*	

	

zCondition.waitcCs~d}|}|}xb|sy|dk	r`|dkrFt|}n|t}|dkr`P|j||}qW|S)Nr)_timerV)r'	predicater9endtimewaittimeresultrrrwait_for5s		


zCondition.wait_forr5cCs|jstd|j}tt||}|s@dSx>|D]6}|jy|j|WqGtk
r|YqGXqGWdS)Nz!cannot notify on un-acquired lock)rEr<rLrK_islicer=rQrR)r'nall_waiterswaiters_to_notifyrSrrrnotifyLs
	


zCondition.notifycCs|jt|jdS)N)rarNrL)r'rrr
notify_allcszCondition.notify_all)rGr/r0r(rHrAr4rDrCrErVr\rarb	notifyAllrrrrr	s	0	c@sOeZdZdddZddddZeZdd	Zd
dZdS)rr5cCs7|dkrtdtt|_||_dS)Nrz$semaphore initial value must be >= 0)rRr	r
_cond_value)r'valuerrrr({szSemaphore.__init__TNc
Cs|r|dk	rtdd}d}|jx|jdkr|sNP|dk	r|dkrvt|}n|t}|dkrP|jj|q8W|jd8_d}WdQRX|S)Nz.can't specify timeout for non-blocking acquireFrr5T)rRrdrerWrV)r'r8r9r;rYrrrr7s$


zSemaphore.acquirec
Cs1|j!|jd7_|jjWdQRXdS)Nr5)rdrera)r'rrrr=s
zSemaphore.releasecCs|jdS)N)r=)r'r>r?r@rrrrAszSemaphore.__exit__)rGr/r0r(r7rHr=rArrrrros
-c@s+eZdZdddZddZdS)rr5cCstj||||_dS)N)rr(_initial_value)r'rfrrrr(szBoundedSemaphore.__init__c
CsO|j?|j|jkr(td|jd7_|jjWdQRXdS)Nz!Semaphore released too many timesr5)rdrergrRra)r'rrrr=s


zBoundedSemaphore.releaseN)rGr/r0r(r=rrrrrsc@saeZdZddZddZddZeZddZd	d
Zddd
Z	dS)rcCstt|_d|_dS)NF)r	r
rd_flag)r'rrrr(szEvent.__init__cCs|jjtdS)N)rdr(r
)r'rrr_reset_internal_locksszEvent._reset_internal_lockscCs|jS)N)rh)r'rrris_setszEvent.is_setc	Cs+|jd|_|jjWdQRXdS)NT)rdrhrb)r'rrrsets
	z	Event.setc	Cs|jd|_WdQRXdS)NF)rdrh)r'rrrclear	s
zEvent.clearNc	Cs:|j*|j}|s+|jj|}|SWdQRXdS)N)rdrhrV)r'r9signaledrrrrVs

	z
Event.wait)
rGr/r0r(rirjisSetrkrlrVrrrrrs
c@seZdZddddZdddZddZdd	Zd
dZdd
ZddZ	ddZ
ddZeddZ
eddZeddZdS)rNcCsCtt|_||_||_||_d|_d|_dS)Nr)r	r
rd_action_timeout_parties_stater&)r'partiesactionr9rrrr(=s					zBarrier.__init__cCs|dkr|j}|jy|j|j}|jd7_z5|d|jkrd|jn
|j||SWd|jd8_|jXWdQRXdS)Nr5)rprd_enterr&rq_release_wait_exit)r'r9indexrrrrVMs		

	

zBarrier.waitcCs<x |jdkr"|jjqW|jdkr8tdS)Nr5rrF)rFr5)rrrdrVBrokenBarrierError)r'rrrruks
zBarrier._enterc	CsIy-|jr|jd|_|jjWn|jYnXdS)Nr5)rorrrdrb_break)r'rrrrvvs	
	
zBarrier._releasecsJjjfdd|s1jtjdkrFtdS)Ncs
jdkS)Nr)rrr)r'rr<lambda>szBarrier._wait.<locals>.<lambda>r)rdr\r{rzrr)r'r9r)r'rrws!
z
Barrier._waitcCs8|jdkr4|jdkr4d|_|jjdS)Nrr5rF)rFr5)r&rrrdrb)r'rrrrxs	z
Barrier._exitc	Csp|j`|jdkrO|jdkr4d|_qX|jdkrXd|_n	d|_|jjWdQRXdS)Nrr5rFrF)rdr&rrrb)r'rrrresets
	z
Barrier.resetc	Cs|j|jWdQRXdS)N)rdr{)r'rrraborts
z
Barrier.abortcCsd|_|jjdS)Nr}r~)rrrdrb)r'rrrr{s	zBarrier._breakcCs|jS)N)rq)r'rrrrsszBarrier.partiescCs|jdkr|jSdS)Nr)rrr&)r'rrr	n_waitingszBarrier.n_waitingcCs
|jdkS)Nr}r~)rr)r'rrrbrokenszBarrier.broken)rGr/r0r(rVrurvrwrxrrr{propertyrsrrrrrrr4s	
	c@seZdZdS)rzN)rGr/r0rrrrrzsrzz	Thread-%dcCs|tS)N)_counter)templaterrr_newnamesrc	@s{eZdZdZejZdddfdddddZddZdd	Z	d
dZ
dd
ZddZddZ
ddZddZddZddZdddZdd2ddZed d!Zejd"d!Zed#d$Zd%d&ZeZed'd(Zejd)d(Zd*d+Zd,d-Zd.d/Zd0d1ZdS)3rFNdaemoncCs|dkri}||_t|p*t|_||_||_|dk	r]||_ntj|_d|_	d|_
t|_d|_
d|_tj|_tj|dS)NFT)_targetstrr_name_args_kwargs	_daemonicr
r_ident_tstate_lockr_started_is_stopped_initialized_sysstderr_stderr	_danglingadd)r'grouptargetr,r r!rrrrr(s 							zThread.__init__cCs6|jj|r |jnd|_d|_dS)NT)rri_set_tstate_lockrr)r'is_aliverrrri s


	zThread._reset_internal_lockscCsd}|jjrd}|j|jr4d}|jrG|d7}|jdk	rg|d|j7}d|jj|j|fS)Ninitialstartedstoppedz daemonz %sz<%s(%s, %s)>)	rrjrrrrr.rGr)r'statusrrrr4,s
		
zThread.__repr__cCs|jstd|jjr0tdt|t|<WdQRXyt|jfWn*tk
rtt|=WdQRXYnX|jj	dS)Nzthread.__init__() not calledz threads can only be started once)
rr<rrj_active_limbo_lock_limbo_start_new_thread
_bootstrap	ExceptionrV)r'rrrstart:s
	
zThread.startc
Cs=z#|jr"|j|j|jWd|`|`|`XdS)N)rrr)r'rrrrunSs		z
Thread.runc	Cs9y|jWn$|jr-tdkr-dSYnXdS)N)_bootstrap_innerrr)r'rrrrds
zThread._bootstrapcCst|_dS)N)r6r)r'rrr
_set_identxszThread._set_identcCst|_|jjdS)N)
_set_sentinelrr7)r'rrrr{szThread._set_tstate_lockc2Csz|j|j|jjt|t|j<t|=WdQRXtrYt	j
ttrlt	jtz7y|j
Wn"tk
rYnt	rt	jdk	rtd|jtfdt	jn|jdk	r|j\}}}ztd|jdd|jtdd|jxH|rqtd|jjj|j|jjjfd|j|j}q*Wtd||fd|jWd~~~XYnXWdXWdtytt=WnYnXWdQRXXdS)NzException in thread %s:
%sfilezException in thread z2 (most likely raised during interpreter shutdown):z"Traceback (most recent call last):z  File "%s", line %s, in %sz%s: %s)rrrrkrr+rrrrrrrr
SystemExitrprintr,_format_excr	_exc_infotb_framef_codeco_filename	tb_linenoco_nametb_nextr6)r'exc_type	exc_valueexc_tbrrrrsT






 
	
!zThread._bootstrap_innercCs+|j}|dk	rd|_d|_dS)NT)rr)r'rMrrr_stops		zThread._stopcCsGyttt=WdQRXWn$tk
rBdtjkr>YnXdS)Ndummy_threading)rr+r6r-rmodules)r'rrr_deletes
zThread._deletecCs|jstd|jjs0td|tkrKtd|dkrd|jn|jdt|ddS)NzThread.__init__() not calledz'cannot join thread before it is startedzcannot join current threadr9r)rr<rrjr
_wait_for_tstate_lockmax)r'r9rrrjoins	
zThread.joinTr5cCsB|j}|dkrn&|j||r>|j|jdS)N)rr7r=r)r'blockr9rMrrrr$s	
zThread._wait_for_tstate_lockcCs|jS)N)r)r'rrrr,2s	zThread.namecCst||_dS)N)rr)r'r,rrrr,=scCs|jS)N)r)r'rrridentBs
zThread.identcCs2|js|jjrdS|jd|jS)NF)rrrjr)r'rrrrNs	
zThread.is_alivecCs|jS)N)r)r'rrrr^sz
Thread.daemoncCs=|jstd|jjr0td||_dS)NzThread.__init__() not calledz)cannot set daemon status of active thread)rr<rrjr)r'daemonicrrrrns
	cCs|jS)N)r)r'rrrisDaemonvszThread.isDaemoncCs
||_dS)N)r)r'rrrr	setDaemonyszThread.setDaemoncCs|jS)N)r,)r'rrrgetName|szThread.getNamecCs
||_dS)N)r,)r'r,rrrsetNameszThread.setNamerF)rGr/r0rrexc_inforr(rir4rrrrrrrrrrrr,setterrrisAliverrrrrrrrrrs6			,A#&c@s:eZdZddddZddZddZdS)rNcCsetj|||_||_|dk	r1|ng|_|dk	rL|ni|_t|_dS)N)rr(intervalfunctionr r!rfinished)r'rrr r!rrrr(s
		zTimer.__init__cCs|jjdS)N)rrk)r'rrrcancelszTimer.cancelcCsI|jj|j|jjs8|j|j|j|jjdS)N)rrVrrjrr r!rk)r'rrrrsz	Timer.run)rGr/r0r(rrrrrrrs	c@seZdZddZdS)_MainThreadc
CsYtj|dddd|j|jj|jt|t|j<WdQRXdS)Nr,
MainThreadrF)	rr(rrrkrrr+r)r'rrrr(s


z_MainThread.__init__N)rGr/r0r(rrrrrsrc@sCeZdZddZddZddZddd	ZdS)
_DummyThreadc
CsUtj|dtddd|jj|jt|t|j<WdQRXdS)Nr,zDummy-%drT)	rr(rrrkrrr+r)r'rrrr(s


z_DummyThread.__init__cCsdS)Nr)r'rrrrsz_DummyThread._stopcCsdS)NTr)r'rrrrsz_DummyThread.is_aliveNcCsdS)Nr)r'r9rrrrsz_DummyThread.join)rGr/r0r(rrrrrrrrsrcCs/yttSWntk
r*tSYnXdS)N)r+r6r-rrrrrr
s
c
Cs&tttttSWdQRXdS)N)rrNr+rrrrrrscCs ttjttjS)N)listr+valuesrrrrr
_enumeratesrc
Cs2t%ttjttjSWdQRXdS)N)rrr+rrrrrrrs)rcCsTtj}|jtjt}x|rE|jt}q)WtjdS)N)_main_threadrr=r_pickSomeNonDaemonThreadrr)tlockr>rrr	_shutdowns	

		

rcCs2x+tD] }|jr
|jr
|Sq
WdS)N)rrr)r>rrrrsrcCstS)N)rrrrrmain_threadsr)_local)rcCstai}t}|attt}|jtx]|D]U}||kr|jdt	}||_
|||<qH|jd|jqHWtj
tj
tj|WdQRXdS)NTF)r#rr
rrkrupdaterrir6rrrrlr+)
new_activecurrentthreadsthreadrrrr_after_fork's&		


		




r)Jsysr_threadtimerrW	tracebackrr_weakrefsetr	itertoolsrr]rr&_collectionsrrKImportErrorcollections__all__start_new_threadr
allocate_lockr#rr6errorrrrrJTIMEOUT_MAXrrrrr
r"rr	rrrrr<rz__next__rrrr+rrrrrrr

currentThreadractiveCountrrrrrrrrrZ_threading_localrrrrr<module>s
					

	

qP&O		
	

Back to Directory File Manager