й¼]µ)ã@sWddlZddlZddlZddlmZgZGdd„deƒZGdd„deƒZGdd „d eƒZ Gd d „d eƒZ Gd d „d e ƒZ Gdd„dej ƒZGdd„de ƒZedd„eeƒDƒƒe_ejdkrÉGdd„dej ƒZGdd„dej ƒZGdd„dej ƒZGdd„de ƒZGdd„de ƒZGdd „d e ƒZd!eƒd"eƒd#eƒiZeed!ƒZnNGd$d„dej ƒZGd%d„de ƒZd"eƒiZeed"ƒZd&d'„ZejƒZd(d)„Zd*d+„Zd,d-„Z dS).éNé)Úprocessc@seZdZdS)Ú ProcessErrorN)Ú__name__Ú __module__Ú __qualname__©rrú,/opt/alt/python35/lib64/python3.5/context.pyr s rc@seZdZdS)ÚBufferTooShortN)rrrrrrr r s r c@seZdZdS)Ú TimeoutErrorN)rrrrrrr r s r c@seZdZdS)ÚAuthenticationErrorN)rrrrrrr r s r c@sÒeZdZeZeZeZeZeej ƒZ eej ƒZ dd„Z dd„Z ddd„Z dd „Zd d „Zd d d„Zddd„Zddd„Zdd„Zd d dd„Zddd„Zddd„Zdd„Zd d fd dd „Zd!d"„Zd#d$„Zd%dd&d'„Zd%dd(d)„Zd*d+„Zd,d-„Zd d.d/„Zd0d1„Z d2d3„Z!d4d5„Z"d d6d7„Z#d8d9d:„Z$d8d;d<„Z%d=d>„Z&d S)?Ú BaseContextcCs/tjƒ}|dkr'tdƒ‚n|SdS)Nzcannot determine number of cpus)ÚosÚ cpu_countÚNotImplementedError)ÚselfÚnumrrr r's  zBaseContext.cpu_countcCs3ddlm}|d|jƒƒ}|jƒ|S)Nr)Ú SyncManagerÚctx)ÚmanagersrÚ get_contextÚstart)rrÚmrrr ÚManager/s zBaseContext.ManagerTcCsddlm}||ƒS)Nr)ÚPipe)Ú connectionr)rÚduplexrrrr r:szBaseContext.PipecCs#ddlm}|d|jƒƒS)Nr)ÚLockr)Ú synchronizerr)rrrrr r?szBaseContext.LockcCs#ddlm}|d|jƒƒS)Nr)ÚRLockr)rrr)rrrrr rDszBaseContext.RLockNcCs&ddlm}||d|jƒƒS)Nr)Ú Conditionr)rr r)rÚlockr rrr r IszBaseContext.ConditionrcCs&ddlm}||d|jƒƒS)Nr)Ú Semaphorer)rr"r)rÚvaluer"rrr r"NszBaseContext.SemaphorecCs&ddlm}||d|jƒƒS)Nr)ÚBoundedSemaphorer)rr$r)rr#r$rrr r$SszBaseContext.BoundedSemaphorecCs#ddlm}|d|jƒƒS)Nr)ÚEventr)rr%r)rr%rrr r%XszBaseContext.EventcCs,ddlm}||||d|jƒƒS)Nr)ÚBarrierr)rr&r)rÚpartiesÚactionÚtimeoutr&rrr r&]szBaseContext.BarrierrcCs&ddlm}||d|jƒƒS)Nr)ÚQueuer)Úqueuesr*r)rÚmaxsizer*rrr r*bszBaseContext.QueuecCs&ddlm}||d|jƒƒS)Nr)Ú JoinableQueuer)r+r-r)rr,r-rrr r-gszBaseContext.JoinableQueuecCs#ddlm}|d|jƒƒS)Nr)Ú SimpleQueuer)r+r.r)rr.rrr r.lszBaseContext.SimpleQueuecCs/ddlm}|||||d|jƒƒS)Nr)ÚPoolÚcontext)Úpoolr/r)rÚ processesÚ initializerÚinitargsÚmaxtasksperchildr/rrr r/qszBaseContext.PoolcGsddlm}|||ŒS)Nr)ÚRawValue)Ú sharedctypesr6)rÚtypecode_or_typeÚargsr6rrr r6xszBaseContext.RawValuecCsddlm}|||ƒS)Nr)ÚRawArray)r7r:)rr8Úsize_or_initializerr:rrr r:}szBaseContext.RawArrayr!cGs/ddlm}|||d|d|jƒŒS)Nr)ÚValuer!r)r7r<r)rr8r!r9r<rrr r<‚szBaseContext.ValuecCs/ddlm}|||d|d|jƒƒS)Nr)ÚArrayr!r)r7r=r)rr8r;r!r=rrr r=ˆszBaseContext.ArraycCs<tjdkr8ttddƒr8ddlm}|ƒdS)NÚwin32ÚfrozenFr)Úfreeze_support)ÚsysÚplatformÚgetattrÚspawnr@)rr@rrr r@Žs!zBaseContext.freeze_supportcCsddlm}|ƒS)Nr)Ú get_logger)ÚutilrE)rrErrr rE–szBaseContext.get_loggercCsddlm}||ƒS)Nr)Ú log_to_stderr)rFrG)rÚlevelrGrrr rGszBaseContext.log_to_stderrcCsddlm}dS)Nr)r)Úr)rrrrr Úallow_connection_pickling¢sz%BaseContext.allow_connection_picklingcCsddlm}||ƒdS)Nr)Úset_executable)rDrK)rÚ executablerKrrr rKªszBaseContext.set_executablecCsddlm}||ƒdS)Nr)Úset_forkserver_preload)Ú forkserverrM)rÚ module_namesrMrrr rM²sz"BaseContext.set_forkserver_preloadc CsQ|dkr|Syt|}Wn"tk rBtd|ƒ‚YnX|jƒ|S)Nzcannot find context for %r)Ú_concrete_contextsÚKeyErrorÚ ValueErrorÚ_check_available)rÚmethodrrrr r¹s   zBaseContext.get_contextFcCs|jS)N)Ú_name)rÚ allow_nonerrr Úget_start_methodÃszBaseContext.get_start_methodcCstdƒ‚dS)Nz+cannot set start method of concrete context)rR)rrTÚforcerrr Úset_start_methodÆszBaseContext.set_start_methodcCsdS)Nr)rrrr rSÉszBaseContext._check_available)'rrrrr r r Ú staticmethodrÚcurrent_processÚactive_childrenrrrrrr r"r$r%r&r*r-r.r/r6r:r<r=r@rErGrJrKrMrrWrYrSrrrr r sF                r c@s(eZdZdZedd„ƒZdS)ÚProcessNcCstjƒjj|ƒS)N)Ú_default_contextrr]Ú_Popen)Ú process_objrrr r_ÒszProcess._Popen)rrrÚ _start_methodrZr_rrrr r]Ðs r]csaeZdZeZdd„Zd‡fdd†Zddd„Zdd d „Zd d „Z‡S) ÚDefaultContextcCs||_d|_dS)N)r^Ú_actual_context)rr0rrr Ú__init__Ùs zDefaultContext.__init__NcsB|dkr.|jdkr'|j|_|jStƒj|ƒSdS)N)rcr^Úsuperr)rrT)Ú __class__rr rÝs   zDefaultContext.get_contextFcCsW|jdk r"| r"tdƒ‚|dkrA|rAd|_dS|j|ƒ|_dS)Nzcontext has already been set)rcÚ RuntimeErrorr)rrTrXrrr rYås   zDefaultContext.set_start_methodcCs/|jdkr%|rdS|j|_|jjS)N)rcr^rU)rrVrrr rWís  zDefaultContext.get_start_methodcCsJtjdkrdgSddlm}|jr<dddgSddgSdS)Nr>rDr)Ú reductionÚforkrN)rArBrIrhÚHAVE_SEND_HANDLE)rrhrrr Úget_all_start_methodsôs   z$DefaultContext.get_all_start_methods) rrrr]rdrrYrWrkrr)rfr rbÖs  rbccs%|]}|ddkr|VqdS)rÚ_Nr)Ú.0Úxrrr ú þsror>c@s(eZdZdZedd„ƒZdS)Ú ForkProcessricCsddlm}||ƒS)Nr)ÚPopen)Ú popen_forkrq)r`rqrrr r_szForkProcess._PopenN)rrrrarZr_rrrr rps rpc@s(eZdZdZedd„ƒZdS)Ú SpawnProcessrDcCsddlm}||ƒS)Nr)rq)Úpopen_spawn_posixrq)r`rqrrr r_szSpawnProcess._PopenN)rrrrarZr_rrrr rs s rsc@s(eZdZdZedd„ƒZdS)ÚForkServerProcessrNcCsddlm}||ƒS)Nr)rq)Úpopen_forkserverrq)r`rqrrr r_szForkServerProcess._PopenN)rrrrarZr_rrrr rus ruc@seZdZdZeZdS)Ú ForkContextriN)rrrrUrpr]rrrr rws rwc@seZdZdZeZdS)Ú SpawnContextrDN)rrrrUrsr]rrrr rxs rxc@s(eZdZdZeZdd„ZdS)ÚForkServerContextrNcCs)ddlm}|js%tdƒ‚dS)Nr)rhz%forkserver start method not available)rIrhrjrR)rrhrrr rS&s z"ForkServerContext._check_availableN)rrrrUrur]rSrrrr ry#s ryrirDrNc@s(eZdZdZedd„ƒZdS)rsrDcCsddlm}||ƒS)Nr)rq)Zpopen_spawn_win32rq)r`rqrrr r_6szSpawnProcess._PopenN)rrrrarZr_rrrr rs4s c@seZdZdZeZdS)rxrDN)rrrrUrsr]rrrr rx;s cCst|t_dS)N)rPr^rc)rTrrr Ú_force_start_methodHsrzcCsttddƒS)NÚspawning_popen)rCÚ_tlsrrrr Úget_spawning_popenQsr}cCs |t_dS)N)r|r{)Úpopenrrr Úset_spawning_popenTsrcCs,tƒdkr(tdt|ƒjƒ‚dS)NzF%s objects should only be shared between processes through inheritance)r}rgÚtyper)Úobjrrr Úassert_spawningWsr‚)!rrAÚ threadingrIrÚ__all__Ú Exceptionrr r r Úobjectr Ú BaseProcessr]rbÚlistÚdirrBrprsrurwrxryrPr^rzÚlocalr|r}rr‚rrrr Ús@   ³("