o
    ¹i¡  ã                   @   s&   d dl Z d dlZdd„ Zddd„ZdS )é    Nc              	   C   s’   h | £d’d’} zdd„ t  d¡D ƒ}W n ty/   ddl}| |j¡d }h t|ƒ£}Y nw ||  D ]}zt  |¡ W q4 tyF   Y q4w dS )z8Close all the file descriptors except those in keep_fds.é   é   c                 S   s   h | ]}t |ƒ’qS © )Úint)Ú.0Úfdr   r   úb/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/joblib/externals/loky/backend/fork_exec.pyÚ	<setcomp>   s    zclose_fds.<locals>.<setcomp>z/proc/self/fdr   N)	ÚosÚlistdirÚFileNotFoundErrorÚresourceÚ	getrlimitÚRLIMIT_NOFILEÚrangeÚcloseÚOSError)Úkeep_fdsÚopen_fdsr   Úmax_nfdsÚir   r   r   Ú	close_fds   s   ýÿýr   c                 C   sF   |pi }i t j¥|¥}t  ¡ }|dkr!t|ƒ t  tj| |¡ d S |S )Nr   )r
   ÚenvironÚforkr   ÚexecveÚsysÚ
executable)Úcmdr   ÚenvÚ	child_envÚpidr   r   r   Ú	fork_exec    s   r!   )N)r
   r   r   r!   r   r   r   r   Ú<module>   s   