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>|jtƒkst‚d|_t|jdƒr.d|jj|<tjj|ƒdS)NTr) rrÚAssertionErrorrÚhasattrrrrÚ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-r1ÚitemsÚ startswithÚappendÚsortÚ __class__r)Újoin)rr5ZtemprÚvaluer"r"r#Ú__repr__Rs zNamespace.__repr__N)r)r*r+rr<r"r"r"r#r0Osr0TcCs 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)rC)rr"r"r#Ú_getesz Value._getcCs ||_dS)N)rC)rr;r"r"r#Ú_setgsz Value._setcCsdt|ƒj|j|jfS)Nz <%s(%r, %r)>)Útyper)rBrC)rr"r"r#r<jszValue.__repr__N)T) r)r*r+rrDrEr,r;r<r"r"r"r#rAas   rAcCs tjtS)N)ÚsysÚmodulesr)r"r"r"r#r mscCsdS)Nr"r"r"r"r#ÚshutdownpsrIcCsddlm}||||ƒS)Né)Ú ThreadPool)ZpoolrK)Z processesZ initializerZinitargsrKr"r"r#rss )T)#Ú__all__rrGrr=Z connectionrrrrrr r r Zqueuer rrrZcurrent_threadrrrrrÚobjectr0Údictr-r@rAr rIrrr"r"r"r#Ú s2