o ?Og@spddlZddlZddlmZmZddlmZddlmZddlmZdgZ Gdd d e Z Gd ddej Z dS) N) reductionset_spawning_popen) popen_fork)spawn)utilPopenc@seZdZddZddZdS)_DupFdcCs ||_dSNfdselfr rH/opt/alt/python310/lib64/python3.10/multiprocessing/popen_spawn_posix.py__init__s z_DupFd.__init__cCs|jSr r )rrrrdetachsz _DupFd.detachN)__name__ __module__ __qualname__rrrrrrr s r cs4eZdZdZeZfddZddZddZZ S)rrcsg|_t|dSr )_fdssuperr)r process_obj __class__rrrszPopen.__init__cCs|j||Sr )rappendr rrrduplicate_for_child"s zPopen.duplicate_for_childc Csddlm}|}|j|t|j}t }t |zt ||t ||Wt dnt dwd}}}} zut \}}t \}} tj||d} |j||gtt| |j|_||_t| ddd} | |Wdn1swYWg} || fD] } | dur| | qt|tj| |_||fD] } | durt | qdSg} || fD] } | dur| | qt|tj| |_||fD] } | durt | qw)Nr)resource_tracker) tracker_fdZ pipe_handlewbF)closefd)rZgetfdrrrZget_preparation_data_nameioBytesIOrrdumpospipeZget_command_lineextendrZspawnv_passfdsZget_executablepidZsentinelopenwrite getbufferZFinalizeZ close_fds finalizerclose)rrrrZ prep_datafpZparent_rZchild_wZchild_rZparent_wcmdfZ fds_to_closer rrr_launch&s`               z Popen._launch) rrrmethodr ZDupFdrrr2 __classcell__rrrrrs  ) r#r&contextrrr!rrr__all__objectr rrrrrs