Edit File: popen_spawn_win32.cpython-36.opt-1.pyc
3 � \�������������������@���s����d�dl�Z�d�dlZd�dlZd�dlZd�dlZddlmZmZmZ�ddl m Z �ddl mZ�dgZdZ ejdkoreed d �Zejj��jd�ZG�dd��de�ZdS�) �����N����)� reduction�get_spawning_popen�set_spawning_popen)�spawn)�util�Popeni���Zwin32�frozenFzpythonservice.exec���������������@���s>���e�Zd�ZdZdZdd��Zdd��Zddd �Zd d��Zdd ��Z dS�)r���z@ Start a subprocess to run the code of a process object r���c�������������C���s��t�j|j�}tjd�d�\}}tj|d�}t�jtj ��|d�}dj dd��|D���}t|ddd���}y4tjt�j ��|d�d�d dd�d�d�� \}} } }tj| ��W�n���tj|����Y�nX�| |�_d�|�_||�_t|�|�_tj|�tj|�jf��t|���ztj||��tj||��W�d�td���X�W�d�Q�R�X�d�S�) Nr���)Z parent_pidZpipe_handle� c�������������s���s���|�]}d�|�V��qdS�)z"%s"N��)�.0�xr���r����9/usr/lib64/python3.6/multiprocessing/popen_spawn_win32.py� <genexpr>)���s����z!Popen.__init__.<locals>.<genexpr>�wbT)�closefdF)r���Zget_preparation_data�_name�_winapiZ CreatePipe�msvcrtZopen_osfhandleZget_command_line�os�getpid�join�openZ CreateProcessZget_executableZCloseHandle�pid� returncode�_handle�int�sentinelr���ZFinalizer���r����dump)�selfZprocess_objZ prep_dataZrhandleZwhandleZwfd�cmdZto_childZhpZhtr����tidr���r���r����__init__ ���s2���� zPopen.__init__c�������������C���s���t�j||�j�S�)N)r���Z duplicater���)r���Zhandler���r���r����duplicate_for_childE���s����zPopen.duplicate_for_childNc�������������C���st���|�j�d�krn|d�krtj}ntdt|d�d���}tjt|�j�|�}|tjkrntj|�j�}|t krht j�}||�_�|�j�S�)Nr���i���g�������?)r���r���ZINFINITE�maxr���ZWaitForSingleObjectr���Z WAIT_OBJECT_0ZGetExitCodeProcess� TERMINATE�signal�SIGTERM)r����timeoutZmsecs�res�coder���r���r����waitI���s���� z Popen.waitc�������������C���s���|�j�dd�S�)Nr���)r(���)r+���)r���r���r���r����pollY���s����z Popen.pollc�������������C���sL���|�j�d�krHytjt|�j�t��W�n&�tk rF���|�jdd�d�krB��Y�nX�d�S�)Ng�������?)r(���)r���r���ZTerminateProcessr���r���r%����OSErrorr+���)r���r���r���r���� terminate\���s���� zPopen.terminate)N) �__name__� __module__�__qualname__�__doc__�methodr"���r#���r+���r,���r.���r���r���r���r���r������s���% )r���r���r&����sysr����contextr���r���r�����r���r����__all__r%����platform�getattrZWINEXE� executable�lower�endswithZ WINSERVICE�objectr���r���r���r���r����<module>���s���