3 \P ã@sdddddddddd d d d d ddgZddlZddlZddlZddlZddlmZddlmZmZm Z m Z ddlm Z m Z m Z ddlmZGdd„dejƒZeZejZejƒeƒ_dd„Zdd„ZGdd„deƒZeZeZd&dd„ZGd d!„d!eƒZd"d „Zd#d$„Z ddffd%d„Z!eZ"dS)'ÚProcessÚcurrent_processÚactive_childrenÚfreeze_supportÚLockÚRLockÚ SemaphoreÚBoundedSemaphoreÚ ConditionÚEventÚBarrierÚQueueÚManagerÚPipeÚPoolÚ JoinableQueueéNé)r)rrrr)r r r )r c@s4eZdZdddfifdd„Zdd„Zedd„ƒZdS)Ú DummyProcessNcCs8tjj||||||ƒd|_tjƒ|_d|_tƒ|_ dS)NF) Ú threadingÚThreadÚ__init__Z_pidÚweakrefÚWeakKeyDictionaryÚ _childrenÚ _start_calledrÚ_parent)ÚselfÚgroupÚtargetÚnameÚargsÚkwargs©r"ú6/usr/lib64/python3.6/multiprocessing/dummy/__init__.pyr$s  zDummyProcess.__init__cCs.d|_t|jdƒrd|jj|<tjj|ƒdS)NTr)rÚhasattrrrrrÚstart)rr"r"r#r%+s  zDummyProcess.startcCs|jr|jƒ rdSdSdS)Nr)rÚis_alive)rr"r"r#Úexitcode2szDummyProcess.exitcode)Ú__name__Ú __module__Ú __qualname__rr%Úpropertyr'r"r"r"r#r"srcCs6tƒj}x$t|ƒD]}|jƒs|j|dƒqWt|ƒS)N)rrÚlistr&Úpop)ZchildrenÚpr"r"r#rAs cCsdS)Nr"r"r"r"r#rHsc@seZdZdd„Zdd„ZdS)Ú NamespacecKs|jj|ƒdS)N)Ú__dict__Úupdate)rÚkwdsr"r"r#rPszNamespace.__init__cCs^t|jjƒƒ}g}x,|D]$\}}|jdƒs|jd||fƒqW|jƒd|jjdj|ƒfS)NÚ_z%s=%rz%s(%s)z, ) r,r0ÚitemsÚ startswithÚappendÚsortÚ __class__r(Újoin)rr4ZtemprÚvaluer"r"r#Ú__repr__Rs zNamespace.__repr__N)r(r)r*rr;r"r"r"r#r/Osr/TcCs tj||ƒS)N)Úarray)ÚtypecodeZsequenceÚlockr"r"r#ÚArray^sr?c@s8eZdZd dd„Zdd„Zdd„ZeeeƒZdd „Zd S) ÚValueTcCs||_||_dS)N)Ú _typecodeÚ_value)rr=r:r>r"r"r#rbszValue.__init__cCs|jS)N)rB)rr"r"r#Ú_getesz Value._getcCs ||_dS)N)rB)rr:r"r"r#Ú_setgsz Value._setcCsdt|ƒj|j|jfS)Nz <%s(%r, %r)>)Útyper(rArB)rr"r"r#r;jszValue.__repr__N)T) r(r)r*rrCrDr+r:r;r"r"r"r#r@as   r@cCs tjtS)N)ÚsysÚmodulesr(r"r"r"r#r mscCsdS)Nr"r"r"r"r#ÚshutdownpsrHcCsddlm}||||ƒS)Né)Ú ThreadPool)ZpoolrJ)Z processesZ initializerZinitargsrJr"r"r#rss )T)#Ú__all__rrFrr<Z connectionrrrrrr r r Zqueuer rrrZcurrent_threadrrrrrÚobjectr/Údictr,r?r@r rHrrr"r"r"r#Ú s2