\dddlZddlZddlmZmZddlmZddlmZddlmZdgZ Gdd e Z Gd dej Z dS) N) reductionset_spawning_popen) popen_fork)spawn)utilPopenceZdZdZdZdS)_DupFdc||_dSNfdselfrs 2..\python\lib\multiprocessing\popen_spawn_posix.py__init__z_DupFd.__init__s c|jSr r)rs rdetachz _DupFd.detachs wrN)__name__ __module__ __qualname__rrrrr r s2rr c2eZdZdZeZfdZdZdZxZ S)r rcXg|_t|dSr )_fdssuperr)r process_obj __class__s rrzPopen.__init__s(  %%%%%rc:|j||Sr )rappendrs rduplicate_for_childzPopen.duplicate_for_child"s  rcddlm}|}|j|t j|j}tj }t| tj ||tj ||tdn#tdwxYwdx}x}x}} tj\}}tj\}} t j||} |j||gt#jt j| |j|_||_t-| dd5} | |dddn #1swxYwYg} || fD]} | | | t#j|t"j| |_||fD]} | tj| dS#g} || fD]} | | | t#j|t"j| |_||fD]} | tj| wxYw)Nr)resource_tracker) tracker_fd pipe_handlewbF)closefd)r%getfdrr"rget_preparation_data_nameioBytesIOrrdumpospipeget_command_lineextendrspawnv_passfdsget_executablepidsentinelopenwrite getbufferFinalize close_fds finalizerclose)rrr%r& prep_datafpparent_rchild_wchild_rparent_wcmdf fds_to_closers r_launchz Popen._launch&s&&&&&&%++--  $$$.{/@AA Z\\4    % N9b ) ) ) N; + + + t $ $ $ $ t $ $ $ $266676Wx ! " Hg " GX(J5<>>>C I  gw/ 0 0 0*5+?+A+A+. ;;DH$DMhe444 ( ''' ( ( ( ( ( ( ( ( ( ( ( ( ( ( (L* , ,> ''+++!]4NNDN( ! !>HRLLL ! ! L* , ,> ''+++!]4NNDN( ! !>HRLLL !s>1*B++B<B(H0(F$ H$F((H+F(,HA$I7) rrrmethodr DupFdrr#rI __classcell__)r s@rr r s` F E&&&&&"!"!"!"!"!"!"!r) r.r1contextrrr*rrr__all__objectr r rrrrPs 22222222 )V.!.!.!.!.!J .!.!.!.!.!r