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



]/@sddddddgZddlZddlZddlZddlZddlmZd	d
lmZd	dlm	Z	d	dlm
Z
ydd
lmZmZWn*e
k
re
ddddYnXeed\ZZejjZGdddeZGdddeZGdddeZGdddeZGdddeZGdddeZGdddeZGdddejZdS)LockRLock	SemaphoreBoundedSemaphore	ConditionEventN)time)context)process)util)SemLock
sem_unlinkz*This platform lacks a functioning sem_openz( implementation, therefore, the requiredz+ synchronization primitives needed will notz function, see issue 3770.c@seZdZejZddZeddZddZ	ddZ
d	d
ZddZd
dZ
eddZdS)r
c
CsK|dkrtjj}|j}tjdkp?|dk}xbtdD]H}y,tj||||j	|}|_
Wntk
rYqOXPqOWtdtj
d|j|jtjdkrdd}	tj||	|j
jdk	rGdd	lm}
|
|j
jtj|tj|j
jfd
ddS)Nwin32forkdzcannot find name for semaphorezcreated semlock with handle %scSs|jjdS)N)_semlock_after_fork)objr0/opt/alt/python35/lib64/python3.5/synchronize.pyrHsz%SemLock.__init__.<locals>._after_forkr	)registerexitpriorityr)r
_default_contextget_contextget_start_methodsysplatformrange_multiprocessingr

_make_namerFileExistsErrorrdebughandle
_make_methodsregister_after_forknamesemaphore_trackerrFinalize_cleanup)selfkindvaluemaxvaluectxr'Z
unlink_nowislrrrrr__init__3s.

zSemLock.__init__cCs(ddlm}t|||dS)Nr	)
unregister)r(r3r)r'r3rrrr*Us
zSemLock._cleanupcCs"|jj|_|jj|_dS)N)racquirerelease)r+rrrr%[szSemLock._make_methodscCs
|jjS)N)r	__enter__)r+rrrr6_szSemLock.__enter__cGs|jj|S)N)r__exit__)r+argsrrrr7bszSemLock.__exit__cCsbtj||j}tjdkr@tjj|j}n	|j}||j|j	|j
fS)Nr)r
assert_spawningrrrget_spawning_popenduplicate_for_childr$r,r.r')r+r1hrrr__getstate__es
		zSemLock.__getstate__cCs8tjj||_tjd|d|jdS)Nz recreated blocker with handle %rr)r r
_rebuildrrr#r%)r+staterrr__setstate__nszSemLock.__setstate__cCs$dtjjdttjfS)Nz%s-%s	semprefix)rcurrent_process_confignextr
_randrrrrr!sszSemLock._make_nameN)__name__
__module____qualname__tempfile_RandomNameSequencerEr2staticmethodr*r%r6r7r=r@r!rrrrr
/s"	r
c@s7eZdZdddZddZddZdS)	rr	cCs tj|t|td|dS)Nr/)r
r2	SEMAPHORE
SEM_VALUE_MAX)r+r-r/rrrr2~szSemaphore.__init__cCs
|jjS)N)r
_get_value)r+rrr	get_valueszSemaphore.get_valuecCsBy|jj}Wntk
r-d}YnXd|jj|fS)Nunknownz<%s(value=%s)>)rrN	Exception	__class__rF)r+r-rrr__repr__s

zSemaphore.__repr__N)rFrGrHr2rOrSrrrrr|sc@s+eZdZdddZddZdS)rr	cCs tj|t||d|dS)Nr/)r
r2rL)r+r-r/rrrr2szBoundedSemaphore.__init__cCsKy|jj}Wntk
r-d}YnXd|jj||jjfS)NrPz<%s(value=%s, maxvalue=%s)>)rrNrQrRrFr.)r+r-rrrrSs
zBoundedSemaphore.__repr__N)rFrGrHr2rSrrrrrsc@s(eZdZddZddZdS)rcCs tj|tddd|dS)Nr	r/)r
r2rL)r+r/rrrr2sz
Lock.__init__cCsy|jjrPtjj}tjjdkr|dtjj7}nB|jjdkrnd}n$|jjdkrd}nd}Wnt	k
rd}YnXd	|j
j|fS)
N
MainThread|r	NonerSomeOtherThreadSomeOtherProcessrPz<%s(owner=%s)>)r_is_minerrBr'	threadingcurrent_threadrN_countrQrRrF)r+r'rrrrSs		

z
Lock.__repr__N)rFrGrHr2rSrrrrrsc@s(eZdZddZddZdS)rcCs tj|tddd|dS)Nr	r/)r
r2RECURSIVE_MUTEX)r+r/rrrr2szRLock.__init__cCsy|jjr_tjj}tjjdkrM|dtjj7}|jj}nT|jjdkrd\}}n0|jjdkrd\}}nd
\}}Wnt	k
rd\}}YnXd
|j
j||fS)NrTrUr	rVrrWnonzerorXrPz<%s(%s, %s)>)rVr)rWr^)rXr^)rPrP)rrYrrBr'rZr[r\rNrQrRrF)r+r'countrrrrSs
zRLock.__repr__N)rFrGrHr2rSrrrrrsc@seZdZdddZddZddZdd	Zd
dZdd
ZddZ	dddZ
ddZddZdddZ
dS)rNcCsY|p|j|_|jd|_|jd|_|jd|_|jdS)Nr)r_lockr_sleeping_count_woken_count_wait_semaphorer%)r+lockr/rrrr2s
zCondition.__init__cCs)tj||j|j|j|jfS)N)r
r9r`rarbrc)r+rrrr=s
zCondition.__getstate__cCs,|\|_|_|_|_|jdS)N)r`rarbrcr%)r+r?rrrr@szCondition.__setstate__cCs
|jjS)N)r`r6)r+rrrr6szCondition.__enter__cGs|jj|S)N)r`r7)r+r8rrrr7szCondition.__exit__cCs"|jj|_|jj|_dS)N)r`r4r5)r+rrrr%szCondition._make_methodscCs[y&|jjj|jjj}Wntk
r@d}YnXd|jj|j|fS)NrPz<%s(%s, %s)>)rarrNrbrQrRrFr`)r+Znum_waitersrrrrSs
zCondition.__repr__cCs|jj|jjj}x!t|D]}|jjq,Wz|jjd|SWd|jjx!t|D]}|jjqwWXdS)NT)	rar5r`rr\rrcr4rb)r+timeoutr_r0rrrwaits

zCondition.waitcCskx(|jjdr*|jjd}qW|jjdrg|jj|jj|jjddS)NF)rbr4rarcr5)r+resrrrnotifys

zCondition.notifycCsx(|jjdr*|jjd}qWd}x-|jjdr`|jj|d7}q4W|rx!t|D]}|jjqtWx|jjdrqWdS)NFrr	)rbr4rarcr5r)r+rgZsleepersr0rrr
notify_all s
zCondition.notify_allcCs|}|r|S|dk	r/t|}nd}d}xF|s|dk	rj|t}|dkrjP|j||}q>W|S)Nr)_timerf)r+	predicatereresultendtimewaittimerrrwait_for7s		


zCondition.wait_for)rFrGrHr2r=r@r6r7r%rSrfrhrirorrrrrsc@sOeZdZddZddZddZddZd	d
dZd	S)rcCs.|j|j|_|jd|_dS)Nr)rr_condr_flag)r+r/rrrr2OszEvent.__init__c	Cs<|j,|jjdr-|jjdSdSWdQRXdS)NFT)rprqr4r5)r+rrris_setSs


zEvent.is_setc	Cs?|j/|jjd|jj|jjWdQRXdS)NF)rprqr4r5ri)r+rrrsetZs

z	Event.setc	Cs%|j|jjdWdQRXdS)NF)rprqr4)r+rrrclear`s
zEvent.clearNc	Csn|j^|jjdr,|jjn|jj||jjdr_|jjdSdSWdQRXdS)NFT)rprqr4r5rf)r+rerrrrfds

z
Event.wait)rFrGrHr2rrrsrtrfrrrrrMs
c@seZdZddddZddZddZedd	Zejd
d	ZeddZ	e	jd
dZ	dS)BarrierNc	Cssddl}ddlm}||jdd}|j}|j|||||fd|_d|_dS)Nrr	)
BufferWrapperr0r)structheaprvcalcsizerr@_stater\)	r+partiesactionrer/rwrvwrapperZcondrrrr2vs	zBarrier.__init__cCsC|\|_|_|_|_|_|jjjd|_dS)Nr0)_parties_action_timeoutrp_wrapperZcreate_memoryviewcast_array)r+r?rrrr@s$zBarrier.__setstate__cCs"|j|j|j|j|jfS)N)r~rrrpr)r+rrrr=szBarrier.__getstate__cCs|jdS)Nr)r)r+rrrrzszBarrier._statecCs||jd<dS)Nr)r)r+r-rrrrzscCs|jdS)Nr	)r)r+rrrr\szBarrier._countcCs||jd<dS)Nr	)r)r+r-rrrr\s)
rFrGrHr2r@r=propertyrzsetterr\rrrrruts	ru)__all__rZrrIr rrjr
rrr
rImportErrorlistrr]rLrMobjectrrrrrrrurrrr<module>s0
Mz'
Back to Directory File Manager