
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
U
    ØÕ`  ã                   @   sÐ   d dl Z d dlZd dlZd dlmZ zd dlmZ W n  ek
rT   d dlmZ Y nX dddgZG dd„ de	ƒZ
ejd	kr„d
d„ Zndd„ Zddd„Zddd„Zdd„ Zdd„ Zdd„ addd„Zddd„ZdS )é    N)Úpartial)Ú	monotonic)ÚtimeÚNoWayToWaitForSocketErrorÚwait_for_readÚwait_for_writec                   @   s   e Zd ZdS )r   N)Ú__name__Ú
__module__Ú__qualname__© r   r   úB/opt/alt/python38/lib/python3.8/site-packages/urllib3/util/wait.pyr      s   )é   é   c                 C   s   | |ƒS )Nr   )ÚfnÚtimeoutr   r   r   Ú_retry_on_intr*   s    r   c              
   C   s˜   |d krt dƒ}n
tƒ | }z
| |ƒW S  ttjfk
r� } zF|jd tjkrR‚ n.|tƒ  }|dk rhd}|t dƒkrxd }W Y ¢qW 5 d }~X Y qX qd S )NÚinfr   )Úfloatr   ÚOSErrorÚselectÚerrorÚargsÚerrnoZEINTR)r   r   ZdeadlineÚer   r   r   r   0   s    



Fc           
      C   sd   |s|st dƒ‚g }g }|r&| | ¡ |r4| | ¡ ttj|||ƒ}t||ƒ\}}}	t|p`|p`|	ƒS )Nú2must specify at least one of read=True, write=True)ÚRuntimeErrorÚappendr   r   r   Úbool)
ÚsockÚreadÚwriter   ZrcheckZwcheckr   ZrreadyZwreadyZxreadyr   r   r   Úselect_wait_for_socketG   s    

r!   c                    s^   |s|st dƒ‚d}|r"|tjO }|r0|tjO }t ¡ ‰ ˆ  | |¡ ‡ fdd„}tt||ƒƒS )Nr   r   c                    s   | d k	r| d9 } ˆ   | ¡S )Niè  )Úpoll)Út©Zpoll_objr   r   Údo_pollf   s    z%poll_wait_for_socket.<locals>.do_poll)r   r   ÚPOLLINÚPOLLOUTr"   Úregisterr   r   )r   r   r    r   Úmaskr%   r   r$   r   Úpoll_wait_for_socketZ   s    

r*   c                  O   s   t dƒ‚d S )Nzno select-equivalent available)r   ©r   Úkwargsr   r   r   Únull_wait_for_socketn   s    r-   c               	   C   s<   zt  ¡ } t| jdƒ W n ttfk
r2   Y dS X dS d S )Nr   FT)r   r"   r   ÚAttributeErrorr   r$   r   r   r   Ú_have_working_pollr   s    r/   c                  O   s*   t ƒ rtanttdƒrtantat| |ŽS )Nr   )r/   r*   Úwait_for_socketÚhasattrr   r!   r-   r+   r   r   r   r0      s    
r0   c                 C   s   t | d|d�S )z†Waits for reading to be available on a given socket.
    Returns True if the socket is readable, or False if the timeout expired.
    T)r   r   ©r0   ©r   r   r   r   r   r   Ž   s    c                 C   s   t | d|d�S )z†Waits for writing to be available on a given socket.
    Returns True if the socket is readable, or False if the timeout expired.
    T)r    r   r2   r3   r   r   r   r   •   s    )FFN)FFN)N)N)r   r   ÚsysÚ	functoolsr   r   r   ÚImportErrorÚ__all__Ú	Exceptionr   Úversion_infor   r!   r*   r-   r/   r0   r   r   r   r   r   r   Ú<module>   s&   





