File: //lib64/python3.8/multiprocessing/__pycache__/popen_forkserver.cpython-38.opt-2.pyc
U
e5d @ s d dl Z d dlZddlmZmZ ejs.edddlmZ ddlm Z ddlm
Z
ddlmZ d gZG d
d de
ZG dd d e jZdS )
N ) reductionset_spawning_popenz,No support for sending fds between processes)
forkserver)
popen_fork)spawn)utilPopenc @ s e Zd Zdd Zdd ZdS )_DupFdc C s
|| _ d S N)ind)selfr r 8/usr/lib64/python3.8/multiprocessing/popen_forkserver.py__init__ s z_DupFd.__init__c C s t | j S r )r Zget_inherited_fdsr )r
r r r detach s z
_DupFd.detachN)__name__
__module____qualname__r r r r r r r
s r
c sB e Zd ZdZeZ fddZdd Zdd Ze j
fdd Z ZS )
r r c s g | _ t | d S r )_fdssuperr )r
process_obj __class__r r r ! s zPopen.__init__c C s | j | t| j d S )Nr )r appendlen)r
fdr r r duplicate_for_child% s zPopen.duplicate_for_childc C s t |j}t }t| zt|| t|| W 5 td X t | j
\| _}t
|}t| tj|| jf| _t|ddd}|| W 5 Q R X t| j| _d S )NwbT)closefd)r Zget_preparation_data_nameioBytesIOr r dumpr Zconnect_to_new_processr sentinelosdupr ZFinalizeZ close_fds finalizeropenwrite getbufferread_signedpid)r
r Z prep_dataZbufwZ _parent_wfr r r _launch) s
z
Popen._launchc C sr | j d krlddlm} |tjkr$dnd }|| jg|s:d S zt| j| _ W n tt fk
rj d| _ Y nX | j S )Nr )wait )
returncodeZmultiprocessing.connectionr0 r% WNOHANGr$ r r+ OSErrorEOFError)r
flagr0 Ztimeoutr r r poll= s
z
Popen.poll)
r r r methodr
ZDupFdr r r/ r% r3 r7
__classcell__r r r r r s )r! r% contextr r ZHAVE_SEND_HANDLEImportError r r r r __all__objectr
r r r r r <module> s