Your IP : 3.145.2.137


Current Path : /lib64/python3.6/multiprocessing/__pycache__/
Upload File :
Current File : //lib64/python3.6/multiprocessing/__pycache__/context.cpython-36.opt-1.pyc

3


 \�*�@s�ddlZddlZddlZddlmZddlmZgZGdd�de�ZGdd�de�Z	Gd	d
�d
e�Z
Gdd�de�ZGd
d�de�Z
Gdd�dej�ZGdd�de
�Zedd�ee�D��e_ejdk�rPGdd�dej�ZGdd�dej�ZGdd�dej�ZGdd�de
�ZGdd�de
�ZGd d!�d!e
�Ze�e�e�d"�Zeed#�Zn8Gd$d�dej�ZGd%d�de
�Zd&e�iZeed&�Zd'd(�Zej�Zd)d*�Zd+d,�Z d-d.�Z!dS)/�N�)�process)�	reductionc@seZdZdS)�ProcessErrorN)�__name__�
__module__�__qualname__�r	r	�/usr/lib64/python3.6/context.pyrsrc@seZdZdS)�BufferTooShortN)rrrr	r	r	r
rsrc@seZdZdS)�TimeoutErrorN)rrrr	r	r	r
rsrc@seZdZdS)�AuthenticationErrorN)rrrr	r	r	r
r
sr
c@sVeZdZeZeZeZeZeej	�Z	eej
�Z
dd�Zdd�ZdBdd�Z
dd	�Zd
d�ZdCd
d�ZdDdd�ZdEdd�Zdd�ZdFdd�ZdGdd�ZdHdd�Zdd�Zddfdfdd �Zd!d"�Zd#d$�Zdd%�d&d'�Zdd%�d(d)�Zd*d+�Zd,d-�ZdId.d/�Zd0d1�Z d2d3�Z!d4d5�Z"dJd6d7�Z#dKd9d:�Z$dLd;d<�Z%e&d=d>��Z'e'j(d?d>��Z'd@dA�Z)dS)M�BaseContextcCs"tj�}|dkrtd��n|SdS)z(Returns the number of CPUs in the systemNzcannot determine number of cpus)�os�	cpu_count�NotImplementedError)�selfZnumr	r	r
r(s
zBaseContext.cpu_countcCs&ddlm}||j�d�}|j�|S)z�Returns a manager associated with a running server process

        The managers methods such as `Lock()`, `Condition()` and `Queue()`
        can be used to create shared objects.
        r)�SyncManager)�ctx)Zmanagersr�get_context�start)rr�mr	r	r
�Manager0szBaseContext.ManagerTcCsddlm}||�S)z1Returns two connection object connected by a piper)�Pipe)�
connectionr)rZduplexrr	r	r
r;szBaseContext.PipecCsddlm}||j�d�S)z#Returns a non-recursive lock objectr)�Lock)r)�synchronizerr)rrr	r	r
r@szBaseContext.LockcCsddlm}||j�d�S)zReturns a recursive lock objectr)�RLock)r)rrr)rrr	r	r
rEszBaseContext.RLockNcCsddlm}|||j�d�S)zReturns a condition objectr)�	Condition)r)rrr)r�lockrr	r	r
rJszBaseContext.ConditionrcCsddlm}|||j�d�S)zReturns a semaphore objectr)�	Semaphore)r)rr r)r�valuer r	r	r
r OszBaseContext.SemaphorecCsddlm}|||j�d�S)z"Returns a bounded semaphore objectr)�BoundedSemaphore)r)rr"r)rr!r"r	r	r
r"TszBaseContext.BoundedSemaphorecCsddlm}||j�d�S)zReturns an event objectr)�Event)r)rr#r)rr#r	r	r
r#YszBaseContext.EventcCs ddlm}|||||j�d�S)zReturns a barrier objectr)�Barrier)r)rr$r)rZparties�actionZtimeoutr$r	r	r
r$^szBaseContext.BarrierrcCsddlm}|||j�d�S)zReturns a queue objectr)�Queue)r)�queuesr&r)r�maxsizer&r	r	r
r&cszBaseContext.QueuecCsddlm}|||j�d�S)zReturns a queue objectr)�
JoinableQueue)r)r'r)r)rr(r)r	r	r
r)hszBaseContext.JoinableQueuecCsddlm}||j�d�S)zReturns a queue objectr)�SimpleQueue)r)r'r*r)rr*r	r	r
r*mszBaseContext.SimpleQueuecCs"ddlm}||||||j�d�S)zReturns a process pool objectr)�Pool)�context)Zpoolr+r)rZ	processesZinitializerZinitargsZmaxtasksperchildr+r	r	r
r+rs
zBaseContext.PoolcGsddlm}||f|��S)zReturns a shared objectr)�RawValue)�sharedctypesr-)r�typecode_or_type�argsr-r	r	r
r-yszBaseContext.RawValuecCsddlm}|||�S)zReturns a shared arrayr)�RawArray)r.r1)rr/�size_or_initializerr1r	r	r
r1~szBaseContext.RawArray)rcGs&ddlm}||f|�||j�d��S)z$Returns a synchronized shared objectr)�Value)rr)r.r3r)rr/rr0r3r	r	r
r3�szBaseContext.ValuecCs ddlm}|||||j�d�S)z#Returns a synchronized shared arrayr)�Array)rr)r.r4r)rr/r2rr4r	r	r
r4�szBaseContext.ArraycCs,tjdkr(ttdd�r(ddlm}|�dS)z�Check whether this is a fake forked process in a frozen executable.
        If so then run code specified by commandline and exit.
        �win32�frozenFr)�freeze_supportN)�sys�platform�getattr�spawnr7)rr7r	r	r
r7�szBaseContext.freeze_supportcCsddlm}|�S)zZReturn package logger -- if it does not already exist then
        it is created.
        r)�
get_logger)�utilr<)rr<r	r	r
r<�szBaseContext.get_loggercCsddlm}||�S)z8Turn on logging and add a handler which prints to stderrr)�
log_to_stderr)r=r>)r�levelr>r	r	r
r>�szBaseContext.log_to_stderrcCsddlm}dS)zVInstall support for sending connections and sockets
        between processes
        r)rN)�r)rrr	r	r
�allow_connection_pickling�sz%BaseContext.allow_connection_picklingcCsddlm}||�dS)z�Sets the path to a python.exe or pythonw.exe binary used to run
        child processes instead of sys.executable when using the 'spawn'
        start method.  Useful for people embedding Python.
        r)�set_executableN)r;rB)r�
executablerBr	r	r
rB�szBaseContext.set_executablecCsddlm}||�dS)zkSet list of module names to try to load in forkserver process.
        This is really just a hint.
        r)�set_forkserver_preloadN)�
forkserverrD)rZmodule_namesrDr	r	r
rD�sz"BaseContext.set_forkserver_preloadcCsF|dkr|Syt|}Wn tk
r8td|��YnX|j�|S)Nzcannot find context for %r)�_concrete_contexts�KeyError�
ValueError�_check_available)r�methodrr	r	r
r�szBaseContext.get_contextFcCs|jS)N)�_name)r�
allow_noner	r	r
�get_start_method�szBaseContext.get_start_methodcCstd��dS)Nz+cannot set start method of concrete context)rH)rrJ�forcer	r	r
�set_start_method�szBaseContext.set_start_methodcCst�jd�S)z_Controls how objects will be reduced to a form that can be
        shared with other processes.r)�globals�get)rr	r	r
�reducer�szBaseContext.reducercCs|t�d<dS)Nr)rP)rrr	r	r
rR�scCsdS)Nr	)rr	r	r
rI�szBaseContext._check_available)T)N)r)r)NN)r)r)N)N)F)F)*rrrrrrr
�staticmethodrZcurrent_processZactive_childrenrrrrrrr r"r#r$r&r)r*r+r-r1r3r4r7r<r>rArBrDrrMrO�propertyrR�setterrIr	r	r	r
rsJ













rc@seZdZdZedd��ZdS)�ProcessNcCstj�jj|�S)N)�_default_contextrrV�_Popen)�process_objr	r	r
rX�szProcess._Popen)rrr�
_start_methodrSrXr	r	r	r
rV�srVcsFeZdZeZdd�Zd
�fdd�	Zddd�Zdd	d
�Zdd�Z�Z	S)�DefaultContextcCs||_d|_dS)N)rW�_actual_context)rr,r	r	r
�__init__�szDefaultContext.__init__Ncs0|dkr |jdkr|j|_|jSt�j|�SdS)N)r\rW�superr)rrJ)�	__class__r	r
r�s

zDefaultContext.get_contextFcCs>|jdk	r|rtd��|dkr.|r.d|_dS|j|�|_dS)Nzcontext has already been set)r\�RuntimeErrorr)rrJrNr	r	r
rO�szDefaultContext.set_start_methodcCs"|jdkr|rdS|j|_|jjS)N)r\rWrK)rrLr	r	r
rM�s

zDefaultContext.get_start_methodcCs,tjdkrdgStjr dddgSddgSdS)Nr5r;�forkrE)r8r9r�HAVE_SEND_HANDLE)rr	r	r
�get_all_start_methods�s


z$DefaultContext.get_all_start_methods)N)F)F)
rrrrVr]rrOrMrc�
__classcell__r	r	)r_r
r[�s

r[ccs|]}|ddkr|VqdS)r�_Nr	)�.0�xr	r	r
�	<genexpr>srhr5c@seZdZdZedd��ZdS)�ForkProcessracCsddlm}||�S)Nr)�Popen)Z
popen_forkrj)rYrjr	r	r
rXszForkProcess._PopenN)rrrrZrSrXr	r	r	r
risric@seZdZdZedd��ZdS)�SpawnProcessr;cCsddlm}||�S)Nr)rj)Zpopen_spawn_posixrj)rYrjr	r	r
rXszSpawnProcess._PopenN)rrrrZrSrXr	r	r	r
rksrkc@seZdZdZedd��ZdS)�ForkServerProcessrEcCsddlm}||�S)Nr)rj)Zpopen_forkserverrj)rYrjr	r	r
rX szForkServerProcess._PopenN)rrrrZrSrXr	r	r	r
rlsrlc@seZdZdZeZdS)�ForkContextraN)rrrrKrirVr	r	r	r
rm%srmc@seZdZdZeZdS)�SpawnContextr;N)rrrrKrkrVr	r	r	r
rn)srnc@seZdZdZeZdd�ZdS)�ForkServerContextrEcCstjstd��dS)Nz%forkserver start method not available)rrbrH)rr	r	r
rI0sz"ForkServerContext._check_availableN)rrrrKrlrVrIr	r	r	r
ro-sro)rar;rErac@seZdZdZedd��ZdS)rkr;cCsddlm}||�S)Nr)rj)Zpopen_spawn_win32rj)rYrjr	r	r
rX?szSpawnProcess._PopenN)rrrrZrSrXr	r	r	r
rk=sc@seZdZdZeZdS)rnr;N)rrrrKrkrVr	r	r	r
rnDsr;cCst|t_dS)N)rFrWr\)rJr	r	r
�_force_start_methodQsrpcCsttdd�S)N�spawning_popen)r:�_tlsr	r	r	r
�get_spawning_popenZsrscCs
|t_dS)N)rrrq)�popenr	r	r
�set_spawning_popen]srucCs t�dkrtdt|�j��dS)NzF%s objects should only be shared between processes through inheritance)rsr`�typer)�objr	r	r
�assert_spawning`s
rx)"rr8Z	threadingr@rr�__all__�	Exceptionrrrr
�objectrZBaseProcessrVr[�list�dirr9rirkrlrmrnrorFrWrpZlocalrrrsrurxr	r	r	r
�<module>sD>'