관리-도구
편집 파일: process.cpython-39.opt-2.pyc
a �����DOg�.����������������������@���s2��g�d��Z�ddlZddlZddlZddlZddlZddlmZ�zej� e� ���ZW�n�eyf���dZY�n0�dd��Z dd��Zdd ��Zd d��ZG�dd ��d e�ZG�dd��de�ZG�dd��de�ZG�dd��de�Zdae��ae�d�ae��a[i�Zeej� ���D�]0\Z!Z"e!dd��dkr�de!vr�de!���ee"�<�q�e��Z#dS�))�BaseProcess�current_process�active_children�parent_process�����N)�WeakSetc�������������������C���s���t�S��N)�_current_process��r ���r ����//usr/lib64/python3.9/multiprocessing/process.pyr���%���s����r���c�������������������C���s���t����tt�S�r���)�_cleanup�list� _childrenr ���r ���r ���r ���r���+���s����r���c�������������������C���s���t�S�r���)�_parent_processr ���r ���r ���r ���r���3���s����r���c������������������C���s*���t�t�D�]}�|�j���d�urt�|���qd�S�r���)r���r ����_popen�poll�discard)�pr ���r ���r ���r���=���s����r���c�������������������@���s����e�Zd�Zdd��Zddddi�fdd�dd�Zdd ��Zd d��Zdd ��Zdd��Zdd��Z d+dd�Z dd��Zdd��Ze dd���Zejdd���Ze dd���Zejdd���Ze dd���Zejd d���Ze d!d"���Ze d#d$���ZeZe d%d&���Zd'd(��Zd,d)d*�ZdS�)-r���c�����������������C���s���t��d�S�r���)�NotImplementedError��selfr ���r ���r ����_PopenM���s����zBaseProcess._PopenNr ���)�daemonc����������������C���s����t�t�}tj|f�|�_tj���|�_t���|�_tj |�_ d�|�_d|�_||�_ t|�|�_t|�|�_|p�t|��jd�d�dd��|�jD����|�_|d�ur�||�_t�|���d�S�)NF�-�:c�����������������s���s���|�]}t�|�V��qd�S�r���)�str)�.0�ir ���r ���r ���� <genexpr>^��������z'BaseProcess.__init__.<locals>.<genexpr>)�next�_process_counterr���� _identity�_config�copy�os�getpid�_parent_pid�name�_parent_namer����_closed�_target�tuple�_args�dict�_kwargs�type�__name__�join�_namer���� _dangling�add)r����group�targetr'����args�kwargsr����countr ���r ���r ����__init__P���s ���� �zBaseProcess.__init__c�����������������C���s���|�j�rtd��d�S�)Nzprocess object is closed)r)���� ValueErrorr���r ���r ���r ���� _check_closedc���s����zBaseProcess._check_closedc�����������������C���s���|�j�r|�j�|�ji�|�j���d�S�r���)r*���r,���r.���r���r ���r ���r ����rung���s����zBaseProcess.runc�����������������C���s>���|������t���|��|��|�_|�jj|�_|�`|�`|�`t � |���d�S�r���)r<���r���r���r����sentinel� _sentinelr*���r,���r.���r ���r4���r���r ���r ���r ����startn���s���� zBaseProcess.startc�����������������C���s���|������|�j����d�S�r���)r<���r���� terminater���r ���r ���r ���rA�������s����zBaseProcess.terminatec�����������������C���s���|������|�j����d�S�r���)r<���r����killr���r ���r ���r ���rB�������s����zBaseProcess.killc�����������������C���s*���|������|�j�|�}|d�ur&t�|���d�S�r���)r<���r����waitr ���r���)r����timeout�resr ���r ���r ���r1�������s����zBaseProcess.joinc�����������������C���sJ���|������|�tu�rdS�|�jd�u�r"dS�|�j���}|d�u�r8dS�t�|���dS�d�S�)NTF)r<���r���r���r���r ���r���)r���� returncoder ���r ���r ����is_alive����s���� zBaseProcess.is_alivec�����������������C���sH���|�j�d�ur>|�j����d�u�r td��|�j�����d�|�_�|�`t�|���d|�_d�S�)Nz^Cannot close a process while it is still running. You should first call join() or terminate().T)r���r���r;����closer?���r ���r���r)���r���r ���r ���r ���rH�������s���� zBaseProcess.closec�����������������C���s���|�j�S�r����r2���r���r ���r ���r ���r'�������s����zBaseProcess.namec�����������������C���s ���||�_�d�S�r���rI���)r���r'���r ���r ���r ���r'�������s����c�����������������C���s���|�j��dd�S�)Nr���F)r"����getr���r ���r ���r ���r�������s����zBaseProcess.daemonc�����������������C���s���||�j�d<�d�S�)Nr����r"���)r����daemonicr ���r ���r ���r�������s����c�����������������C���s ���|�j�d�S��N�authkeyrK���r���r ���r ���r ���rN�������s����zBaseProcess.authkeyc�����������������C���s���t�|�|�jd<�d�S�rM���)�AuthenticationStringr"���)r���rN���r ���r ���r ���rN�������s����c�����������������C���s"���|������|�jd�u�r|�jS�|�j���S�r���)r<���r���r���r���r ���r ���r ����exitcode����s���� zBaseProcess.exitcodec�����������������C���s*���|������|�tu�rt���S�|�jo$|�jjS�d�S�r���)r<���r���r$���r%���r����pidr���r ���r ���r ����ident����s����zBaseProcess.identc�����������������C���s2���|������z|�jW�S��ty,���td�d��Y�n0�d�S�)Nzprocess not started)r<���r?����AttributeErrorr;���r���r ���r ���r ���r>�������s ����zBaseProcess.sentinelc�����������������C���s����d�}|�t�u�rd}nL|�jrd}n@|�jt���kr2d}n,|�jd�u�rBd}n|�j���}|d�urZd}nd}t|��jd|�j �g}|�jd�ur�|� d|�jj���|� d|�j���|� |��|d�ur�t� ||�}|� d |���|�jr�|� d ��dd�|��S�) N�started�closed�unknown�initial�stoppedzname=%rzpid=%sz parent=%szexitcode=%sr���z<%s>� )r���r)���r&���r$���r%���r���r���r/���r0���r2����appendrQ����_exitcode_to_namerJ���r���r1���)r���rP����status�infor ���r ���r ����__repr__��s0���� zBaseProcess.__repr__c�������������� ���C���s���ddl�m}m}��z`z�|�jd�ur,|�|�j��t�d�at��a |� ���t}|�at|�j |�j|�atjrnt�������z|j����|����W�~n~0�|�d��z|�����d}W�|����n |����0�W�n��t�y �}�zJ|jd�u�r�d}n.t|jt�r�|j}ntj� t!|j�d���d}W�Y�d�}~n:d�}~0����d}dd�l"}tj� d|�j#���|�$���Y�n0�W�t�%���|�d|���|�&���n t�%���|�d|���|�&���0�|S�)N����)�util�contextz child process calling self.run()r���� zProcess %s: z process exiting with exitcode %d)'��r`���ra���� _start_method�_force_start_method� itertoolsr9���r ����setr ����_close_stdinr����_ParentProcessr(���r&���r���� threading�_HAVE_THREAD_NATIVE_ID�main_thread�_set_native_id�_finalizer_registry�clear�_run_after_forkersr]���r=����_exit_function� SystemExit�code� isinstance�int�sys�stderr�writer���� tracebackr'���� print_exc� _shutdown�_flush_std_streams)r����parent_sentinelr`���ra����old_processrP����ery���r ���r ���r ���� _bootstrap"��sT���� � � zBaseProcess._bootstrap)N)N)r0���� __module__�__qualname__r���r:���r<���r=���r@���rA���rB���r1���rG���rH����propertyr'����setterr���rN���rP���rR���rQ���r>���r^���r����r ���r ���r ���r ���r���G���sB���� r���c�������������������@���s���e�Zd�Zdd��ZdS�)rO���c�����������������C���s,���ddl�m}�|��d�u�rtd��tt|��ffS�)Nr_���)�get_spawning_popenzJPickling an AuthenticationString object is disallowed for security reasons)ra���r����� TypeErrorrO����bytes)r���r����r ���r ���r ���� __reduce__X��s���� �zAuthenticationString.__reduce__N)r0���r����r����r����r ���r ���r ���r ���rO���W��s���rO���c�������������������@���s6���e�Zd�Zdd��Zdd��Zedd���Zd dd �ZeZdS�)ri���c�����������������C���s4���d|�_�||�_||�_d�|�_d�|�_d|�_||�_i�|�_d�S�)Nr ���F)r!���r2����_pidr&���r���r)���r?���r"���)r���r'���rQ���r>���r ���r ���r ���r:���h��s����z_ParentProcess.__init__c�����������������C���s���ddl�m}�||�jgdd��S��Nr���)rC���)rD�����multiprocessing.connectionrC���r?���)r���rC���r ���r ���r ���rG���r��s����z_ParentProcess.is_alivec�����������������C���s���|�j�S�r���)r����r���r ���r ���r ���rR���v��s����z_ParentProcess.identNc�����������������C���s ���ddl�m}�||�jg|d��d�S�r����r����)r���rD���rC���r ���r ���r ���r1���z��s����z_ParentProcess.join)N) r0���r����r����r:���rG���r����rR���r1���rQ���r ���r ���r ���r ���ri���f��s��� ri���c�������������������@���s���e�Zd�Zdd��Zdd��ZdS�)�_MainProcessc�����������������C���s8���d|�_�d|�_d�|�_d�|�_d|�_tt�d��dd�|�_d�S�)Nr ����MainProcessF� ���z/mp)rN���� semprefix) r!���r2���r&���r���r)���rO���r$����urandomr"���r���r ���r ���r ���r:������s�����z_MainProcess.__init__c�����������������C���s���d�S�r���r ���r���r ���r ���r ���rH������s����z_MainProcess.closeN)r0���r����r����r:���rH���r ���r ���r ���r ���r�������s���r����r_�������ZSIG�_r���)$�__all__r$���rv����signalrf���rj����_weakrefsetr����path�abspath�getcwd�ORIGINAL_DIR�OSErrorr���r���r���r����objectr���r����rO���ri���r����r���r���r9���r ���rg���r ���r[���r����__dict__�itemsr'����signumr3���r ���r ���r ���r ����<module> ���s<��� ��!