
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
3
nf·\  ã               @   sÐ   d dl Z d dlmZ d dlZd dlZy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   ú/usr/lib/python3.6/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ƒ | }xry| |ƒS  ttjfk
rŠ } zB|jd tjkrR‚ n(|tƒ  }|dk rhd}|t dƒkrxd }wW Y d d }~X qX qW d S )NÚinfr   )Úfloatr   ÚOSErrorÚselectÚerrorÚargsÚerrnoZEINTR)r   r   ZdeadlineÚer   r   r   r   -   s    


Fc       
      C   sh   | r| rt dƒ‚g }g }|r*|j| ƒ |r8|j| ƒ ttj|||ƒ}t||ƒ\}}}	t|pd|pd|	ƒS )Nz2must 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_socketD   s    

r    c                sb   | r| rt dƒ‚d}|r&|tjO }|r4|tjO }tjƒ ‰ ˆ j| |ƒ ‡ fdd„}tt||ƒƒS )Nz2must specify at least one of read=True, write=Truer   c                s   | d k	r| d9 } ˆ j | ƒS )Niè  )Úpoll)Út)Úpoll_objr   r   Údo_pollc   s    z%poll_wait_for_socket.<locals>.do_poll)r   r   ZPOLLINZPOLLOUTr!   Úregisterr   r   )r   r   r   r   Úmaskr$   r   )r#   r   Úpoll_wait_for_socketW   s    

r'   c              O   s   t dƒ‚d S )Nzno select-equivalent available)r   )r   Úkwargsr   r   r   Únull_wait_for_socketk   s    r)   c              C   s:   yt jƒ } t| jdƒ W n ttfk
r0   dS X dS d S )Nr   FT)r   r!   r   ÚAttributeErrorr   )r#   r   r   r   Ú_have_working_pollo   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   r   r,   |   s    
r,   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   )r,   )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   )r,   )r   r   r   r   r   r   ’   s    )r   r   )FFN)FFN)N)N)r   Ú	functoolsr   r   Úsysr   r   ÚImportErrorÚ__all__Ú	Exceptionr   Úversion_infor   r    r'   r)   r+   r,   r   r   r   r   r   r   Ú<module>   s&   





