U
    .‰d  ã                   @   sT   d dl Z d dlmZ d dlmZ G dd„ deƒZG dd„ deƒZG dd	„ d	eƒZdS )
é    N)Úassert_spawning)ÚBaseProcessc                       s>   e Zd ZdZddddi dddf‡ fdd„	Zedd„ ƒZ‡  ZS )	ÚLokyProcessZlokyN© Fc	           	         s<   t ƒ j||||||d |d kr$i n|| _| j| _|| _d S )N)ÚgroupÚtargetÚnameÚargsÚkwargsÚdaemon)ÚsuperÚ__init__ÚenvZauthkeyÚinit_main_module)	Úselfr   r   r   r	   r
   r   r   r   ©Ú	__class__r   úI/tmp/pip-unpacked-wheel-ho8k9mhl/joblib/externals/loky/backend/process.pyr      s        þzLokyProcess.__init__c                 C   s,   t jdkrddlm} nddlm} || ƒS )NÚwin32é   )ÚPopen)ÚsysÚplatformZpopen_loky_win32r   Zpopen_loky_posix)Zprocess_objr   r   r   r   Ú_Popen   s    
zLokyProcess._Popen)Ú__name__Ú
__module__Ú__qualname__Ú_start_methodr   Ústaticmethodr   Ú__classcell__r   r   r   r   r      s     þ
r   c                       s.   e Zd ZdZddddi df‡ fdd„	Z‡  ZS )ÚLokyInitMainProcessZloky_init_mainNr   c              	      s   t ƒ j||||||dd d S )NT)r   r   r   r	   r
   r   r   )r   r   )r   r   r   r   r	   r
   r   r   r   r   r   &   s         þzLokyInitMainProcess.__init__)r   r   r   r   r   r   r   r   r   r   r    #   s
    ÿr    c                   @   s   e Zd Zdd„ ZdS )ÚAuthenticationKeyc                 C   s8   zt | ƒ W n tk
r(   tdƒ‚Y nX tt| ƒffS )NzGPickling an AuthenticationKey object is disallowed for security reasons)r   ÚRuntimeErrorÚ	TypeErrorr!   Úbytes)r   r   r   r   Ú
__reduce__2   s    ÿ
zAuthenticationKey.__reduce__N)r   r   r   r%   r   r   r   r   r!   1   s   r!   )	r   Zmultiprocessing.contextr   Zmultiprocessing.processr   r   r    r$   r!   r   r   r   r   Ú<module>   s
   