]# @svdddgZddlZddlZddlZddlZddlmZyejjej Z Wne k rdZ YnXddZ ddZ dd ZGd ddeZGd d d eZGd ddeZeaejdaea[iZxPeejjD]9\ZZedddkr,dekr,eee Ssz'BaseProcess.__init__..)next_process_counterr _identity_configcopyosgetpid _parent_pidr _targettuple_argsdict_kwargstype__name__join_namer _danglingadd)rgrouptargetnameargskwargsrcountrrr__init__Gs   #  zBaseProcess.__init__cCs#|jr|j|j|jdS)N)r"r$r&)rrrrrunXs zBaseProcess.runcCsKt|j||_|jj|_|`|`|`tj |dS)N) r rr sentinel _sentinelr"r$r&r r,)rrrrstart_s zBaseProcess.startcCs|jjdS)N)r terminate)rrrrr8pszBaseProcess.terminatecCs/|jj|}|dk r+tj|dS)N)r waitr r)rtimeoutresrrrr)vs zBaseProcess.joincCs@|tkrdS|jdkr#dS|jj|jjdkS)NTF)rr r returncode)rrrris_alives   zBaseProcess.is_alivecCs|jS)N)r*)rrrrr/szBaseProcess.namecCs ||_dS)N)r*)rr/rrrr/scCs|jjddS)NrF)rget)rrrrrszBaseProcess.daemoncCs||jdz daemon)rr!rr r r rBr'int_exitcode_to_namer>r(r*r)rstatusrrr__repr__s       zBaseProcess.__repr__c Csddlm}m}zgy|jdk r;|j|jtjdata |j t }|a z|j j |jWd~X|jdz|jd}Wd|jXWntk rA}zd|jsd}nMt|jdtr|jd}n'tjjt|jddd}WYdd}~Xn;d}ddl}tjjd|j|jYnXWd|jd|tjjtjjX|S)N)utilcontextz child process calling self.run()r z Process %s: z process exiting with exitcode %d)rKrQrR _start_method_force_start_method itertoolsr2rsetr _close_stdinr_finalizer_registryclear_run_after_forkersinfor4_exit_function SystemExitr0 isinstancerLsysstderrwriter tracebackr/ print_excstdoutflush)rrQrR old_processrBercrrr _bootstrapsD        !  zBaseProcess._bootstrap)r( __module__ __qualname__rr3r4r7r8r)r=propertyr/setterrr@rBrDrCr5rOrirrrrr>s(         c@seZdZddZdS)rAcCs>ddlm}|dkr+tdtt|ffS)NrP)get_spawning_popenzJPickling an AuthenticationString object is disallowed for security reasons)rRrn TypeErrorrAbytes)rrnrrr __reduce__s  zAuthenticationString.__reduce__N)r(rjrkrqrrrrrAs rAc@seZdZddZdS) _MainProcesscCsLf|_d|_d|_d|_dttjdddi|_dS)N MainProcessr@ semprefixz/mp)rr*r!r rArurandomr)rrrrr3(s     z_MainProcess.__init__N)r(rjrkr3rrrrrr&s rrrPZSIG_) __all__rr`signalrV _weakrefsetrpathabspathgetcwd ORIGINAL_DIROSErrorrrr objectrrprArrrr2rrWr rMr __dict__itemsr/signumr+rrrr s0          ""