a
XC?h @ 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 E/opt/alt/python39/lib64/python3.9/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| z$t|| t|| W td n
td 0 t | j
\| _}t
|}t| tj|| jf| _t|ddd}|| W d n1 s0 Y 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 sp | j d u rjddlm} |tjkr$dnd }|| jg|s:d S zt| j| _ W n tt fyh d| _ Y n0 | 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