o
    l¨Êh÷  ã                   @   sT  d dl Z d dlZd dlZd dlZe  ¡ Zzd dlZW n ey%   dZY nw edkr\edur\d dlm	Z	 e 
e	dƒ¡Zej
e	dƒdd�ZejZeje_ejZeje_ejge_dd	„ Zn9ed
kr�edur�d dlZd dlZdZG dd„ dejƒZej
ddd�ZejZeje e¡ge_dd	„ Znd dlmZ eedƒrŸdd„ Zndd„ Zddd„ZdS )é    NÚDarwin)Úfind_libraryzlibSystem.dylibÚCoreServicesT)Ú	use_errnoc                   C   s   t tƒ ƒd S )Nç•Ö&è.>)Úabsolute_to_nanosecondsÚmach_absolute_time© r	   r	   ú[/var/www/html/env/lib/python3.10/site-packages/joblib/externals/loky/backend/_posix_wait.pyÚ	monotonic    s   r   ÚLinuxé   c                   @   s    e Zd ZdejfdejfgZdS )ÚtimespecÚtv_secÚtv_nsecN)Ú__name__Ú
__module__Ú__qualname__ÚctypesÚc_longÚ_fields_r	   r	   r	   r
   r   +   s    þr   z
librt.so.1c                  C   sB   t ƒ } ttt | ¡ƒdkrt ¡ }t|t |¡ƒ‚| j	| j
d  S )Nr   r   )r   Úclock_gettimeÚCLOCK_MONOTONICr   ÚpointerÚ	get_errnoÚOSErrorÚosÚstrerrorr   r   )ÚtÚerrno_r	   r	   r
   r   7   s
   )ÚtimeÚpollc                 C   s˜   |d ur
t |d ƒ}i }t ¡ }| D ]}| |tj¡ t|dƒr'||| ¡ < q|||< qg }| |¡D ]\}}|tj@ rBtd| ƒ‚| 	|| ¡ q3|S )Niè  Úfilenozinvalid file descriptor %i)
ÚintÚselectr!   ÚregisterÚPOLLINÚhasattrr"   ÚPOLLNVALÚ
ValueErrorÚappend)ÚfdsÚtimeoutÚfd_mapÚpollsterÚfdÚlsÚeventr	   r	   r
   Ú_pollB   s   


r2   c                 C   s   t   | g g |¡d S )Nr   )r$   )r+   r,   r	   r	   r
   r2   T   s   c              
   C   s‚   |dur|dkrt | dƒS tƒ | }	 zt | |ƒW S  tttjfy6 } z|jtjkr,‚ W Y d}~nd}~ww |dur@|tƒ  }q)z{
    Wait till an object in object_list is ready/readable.
    Returns list of those objects which are ready/readable.
    Nr   )r2   r   r   ÚIOErrorÚsocketÚerrorÚerrnoÚEINTR)Úobject_listr,   ÚdeadlineÚer	   r	   r
   ÚwaitX   s    

ÿ€ÿ
ùr;   )N) Úplatformr$   r4   r6   ÚsystemÚSYSTEMr   ÚImportErrorÚctypes.utilr   ÚCDLLÚ	libSystemr   r   Úc_uint64ÚrestypeÚAbsoluteToNanosecondsr   Úargtypesr   r   r   Ú	Structurer   Úlibrtr   Úc_intÚPOINTERr    r'   r2   r;   r	   r	   r	   r
   Ú<module>   sJ   	ÿ
ÿ

ÿ


