o [d@spddlZddlZddlmZmZddlmZddlmZddlmZdgZ Gdd d e Z Gd ddej Z dS) N) reductionset_spawning_popen) popen_fork)spawn)utilPopenc@seZdZddZddZdS)_DupFdcCs ||_dSNfdselfr r8/usr/lib/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_fd pipe_handlewbF)closefd)rgetfdrrrget_preparation_data_nameioBytesIOrrdumpospipeget_command_lineextendrspawnv_passfdsget_executablepidsentinelopenwrite getbufferFinalize close_fds finalizerclose)rrrr prep_datafpparent_rchild_wchild_rparent_wcmdf fds_to_closer rrr_launch&s`               z Popen._launch) rrrmethodr DupFdrrrA __classcell__rrrrrs  ) r&r)contextrrr"rrr__all__objectr rrrrrs