grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026a ´iù+ã@s¶ddlZddlZddlZddlmZddlmZdZGdd„deƒZGdd „d eƒZ Gd d „d eƒZ Gd d „d eƒZ Gdd„de ƒZ Gdd„dejƒZGdd„de ƒZejdk�rRGdd„dejƒZGdd„dejƒZGdd„dejƒZGdd„de ƒZGdd„de ƒZGdd „d e ƒZeƒeƒeƒd!œZejd"k�rDeed#ƒZn eed$ƒZn8Gd%d„dejƒZGd&d„de ƒZd#eƒiZeed#ƒZd'd(„Ze ¡Zd)d*„Zd+d,„Zd-d.„ZdS)/éNé)Úprocess)Ú reduction©c@s eZdZdS)Ú ProcessErrorN©Ú__name__Ú __module__Ú __qualname__rrrú//usr/lib64/python3.9/multiprocessing/context.pyrsrc@s eZdZdS)ÚBufferTooShortNrrrrr r sr c@s eZdZdS)Ú TimeoutErrorNrrrrr r sr c@s eZdZdS)ÚAuthenticationErrorNrrrrr rsrc@sXeZdZeZeZeZeZeej ƒZ eej ƒZ eej ƒZ dd„Z dd„Z dCdd„Zdd „Zd d „ZdDd d„ZdEdd„ZdFdd„Zdd„ZdGdd„ZdHdd„ZdIdd„Zdd„ZdJd d!„Zd"d#„Zd$d%„Zdd&œd'd(„Zdd&œd)d*„Zd+d,„Zd-d.„ZdKd/d0„Z d1d2„Z!d3d4„Z"d5d6„Z#dLd7d8„Z$dMd:d;„Z%dNdd?„ƒZ(e(j)d@d?„ƒZ(dAdB„Z*d S)OÚ BaseContextcCs"t ¡}|durtdƒ‚n|SdS)Nzcannot determine number of cpus)ÚosÚ cpu_countÚNotImplementedError)ÚselfÚnumrrr r)s zBaseContext.cpu_countcCs&ddlm}|| ¡d�}| ¡|S)Nr)Ú SyncManager©Úctx)ÚmanagersrÚ get_contextÚstart)rrÚmrrr ÚManager1s zBaseContext.ManagerTcCsddlm}||ƒS)Nr)ÚPipe)Ú connectionr)rÚduplexrrrr r<s zBaseContext.PipecCsddlm}|| ¡d�S)Nr)ÚLockr)Ú synchronizer r)rr rrr r As zBaseContext.LockcCsddlm}|| ¡d�S)Nr)ÚRLockr)r!r"r)rr"rrr r"Fs zBaseContext.RLockNcCsddlm}||| ¡d�S)Nr)Ú Conditionr)r!r#r)rÚlockr#rrr r#Ks zBaseContext.ConditionrcCsddlm}||| ¡d�S)Nr)Ú Semaphorer)r!r%r)rÚvaluer%rrr r%Ps zBaseContext.SemaphorecCsddlm}||| ¡d�S)Nr)ÚBoundedSemaphorer)r!r'r)rr&r'rrr r'Us zBaseContext.BoundedSemaphorecCsddlm}|| ¡d�S)Nr)ÚEventr)r!r(r)rr(rrr r(Zs zBaseContext.EventcCs ddlm}||||| ¡d�S)Nr)ÚBarrierr)r!r)r)rÚpartiesÚactionÚtimeoutr)rrr r)_s zBaseContext.BarrierrcCsddlm}||| ¡d�S)Nr)ÚQueuer)Úqueuesr-r)rÚmaxsizer-rrr r-ds zBaseContext.QueuecCsddlm}||| ¡d�S)Nr)Ú JoinableQueuer)r.r0r)rr/r0rrr r0is zBaseContext.JoinableQueuecCsddlm}|| ¡d�S)Nr)Ú SimpleQueuer)r.r1r)rr1rrr r1ns zBaseContext.SimpleQueuercCs"ddlm}|||||| ¡d�S)Nr)ÚPool)Úcontext)Úpoolr2r)rÚ processesÚ initializerÚinitargsÚmaxtasksperchildr2rrr r2ss  ÿzBaseContext.PoolcGsddlm}||g|¢RŽS)Nr)ÚRawValue)Ú sharedctypesr9)rÚtypecode_or_typeÚargsr9rrr r9zs zBaseContext.RawValuecCsddlm}|||ƒS)Nr)ÚRawArray)r:r=)rr;Úsize_or_initializerr=rrr r=s zBaseContext.RawArray)r$cGs(ddlm}||g|¢R|| ¡dœŽS)Nr)ÚValue©r$r)r:r?r)rr;r$r<r?rrr r?„s ÿzBaseContext.ValuecCs ddlm}||||| ¡d�S)Nr)ÚArrayr@)r:rAr)rr;r>r$rArrr rAŠs ÿzBaseContext.ArraycCs,tjdkr(ttddƒr(ddlm}|ƒdS)NÚwin32ÚfrozenFr)Úfreeze_support)ÚsysÚplatformÚgetattrÚspawnrD)rrDrrr rD�s zBaseContext.freeze_supportcCsddlm}|ƒS)Nr)Ú get_logger)ÚutilrI)rrIrrr rI˜s zBaseContext.get_loggercCsddlm}||ƒS)Nr)Ú log_to_stderr)rJrK)rÚlevelrKrrr rKŸs zBaseContext.log_to_stderrcCsddlm}dS)Nr)r)Úr)rrrrr Úallow_connection_pickling¤sz%BaseContext.allow_connection_picklingcCsddlm}||ƒdS)Nr)Úset_executable)rHrO)rÚ executablerOrrr rO¬s zBaseContext.set_executablecCsddlm}||ƒdS)Nr)Úset_forkserver_preload)Ú forkserverrQ)rÚ module_namesrQrrr rQ´s z"BaseContext.set_forkserver_preloadcCsF|dur |Sz t|}Wn ty8td|ƒd‚Yn0| ¡|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_methodcCs tdƒ‚dS)Nz+cannot set start method of concrete context)rV©rrXÚforcerrr Úset_start_methodÈszBaseContext.set_start_methodcCs tƒ d¡S©Nr)ÚglobalsÚget©rrrr ÚreducerËszBaseContext.reducercCs|tƒd<dSra)rb)rrrrr reÑscCsdSrYrrdrrr rWÕszBaseContext._check_available)T)N)r)r)NN)r)r)NNrN)N)N)F)F)+rr r rr r rÚ staticmethodrÚcurrent_processÚparent_processÚactive_childrenrrrr r"r#r%r'r(r)r-r0r1r2r9r=r?rArDrIrKrNrOrQrr]r`ÚpropertyreÚsetterrWrrrr rsR          ÿ      rc@seZdZdZedd„ƒZdS)ÚProcessNcCst ¡j |¡SrY)Ú_default_contextrrlÚ_Popen)Ú process_objrrr rnÞszProcess._Popen©rr r Ú _start_methodrfrnrrrr rlÜsrlcsFeZdZeZdd„Zd ‡fdd„ Zddd„Zdd d „Zd d „Z‡Z S)ÚDefaultContextcCs||_d|_dSrY)rmÚ_actual_context)rr3rrr Ú__init__åszDefaultContext.__init__Ncs0|dur |jdur|j|_|jStƒ |¡SdSrY)rsrmÚsuperr)rrX©Ú __class__rr rés  zDefaultContext.get_contextFcCs<|jdur|stdƒ‚|dur,|r,d|_dS| |¡|_dS)Nzcontext has already been set)rsÚ RuntimeErrorrr^rrr r`ñs  zDefaultContext.set_start_methodcCs"|jdur|rdS|j|_|jjSrY)rsrmrZr[rrr r]ùs  zDefaultContext.get_start_methodcCsBtjdkrdgStjdkr"ddgnddg}tjr:| d¡|SdS)NrBrHÚdarwinÚforkrR)rErFrÚHAVE_SEND_HANDLEÚappend)rÚmethodsrrr Úget_all_start_methodss   z$DefaultContext.get_all_start_methods)N)F)F) rr r rlrtrr`r]r~Ú __classcell__rrrvr rrâs   rrrBc@seZdZdZedd„ƒZdS)Ú ForkProcessrzcCsddlm}||ƒS©Nr)ÚPopen)Ú popen_forkr‚©ror‚rrr rns zForkProcess._PopenNrprrrr r€sr€c@seZdZdZedd„ƒZdS)Ú SpawnProcessrHcCsddlm}||ƒSr�)Úpopen_spawn_posixr‚r„rrr rns úSpawnProcess._PopenNrprrrr r…sr…c@seZdZdZedd„ƒZdS)ÚForkServerProcessrRcCsddlm}||ƒSr�)Úpopen_forkserverr‚r„rrr rn s zForkServerProcess._PopenNrprrrr rˆsrˆc@seZdZdZeZdS)Ú ForkContextrzN)rr r rZr€rlrrrr rŠ%srŠc@seZdZdZeZdS©Ú SpawnContextrHN©rr r rZr…rlrrrr rŒ)srŒc@seZdZdZeZdd„ZdS)ÚForkServerContextrRcCstjstdƒ‚dS)Nz%forkserver start method not available)rr{rVrdrrr rW0sz"ForkServerContext._check_availableN)rr r rZrˆrlrWrrrr rŽ-srŽ)rzrHrRryrHrzc@seZdZdZedd„ƒZdS)r…rHcCsddlm}||ƒSr�)Zpopen_spawn_win32r‚r„rrr rnDs r‡Nrprrrr r…Bsc@seZdZdZeZdSr‹r�rrrr rŒIscCst|t_dSrY)rTrmrs)rXrrr Ú_force_start_methodVsr�cCs ttddƒS)NÚspawning_popen)rGÚ_tlsrrrr Úget_spawning_popen_sr’cCs |t_dSrY)r‘r�)Úpopenrrr Úset_spawning_popenbsr”cCs tƒdurtdt|ƒjƒ‚dS)NzF%s objects should only be shared between processes through inheritance)r’rxÚtyper)Úobjrrr Úassert_spawninges  ÿÿr—) rrEÚ threadingrMrrÚ__all__Ú Exceptionrr r rÚobjectrÚ BaseProcessrlrrrFr€r…rˆrŠrŒrŽrTrmr�Úlocalr‘r’r”r—rrrr ÚsJ  ?, ý ÿ