Your IP : 216.73.216.213


Current Path : /opt/alt/python35/lib/python3.5/site-packages/urllib3/util/__pycache__/
Upload File :
Current File : //opt/alt/python35/lib/python3.5/site-packages/urllib3/util/__pycache__/wait.cpython-35.pyc



[\�
@s,ddlZddlmZddlZddlZyddlmZWn"ek
rlddlmZYnXdddgZGdd�de	�Z
ejdkr�dd�Znd
d�Zddddd�Z
ddddd�Zdd�Zdd�Zdd�addd�Zddd�ZdS)�N)�partial)�	monotonic)�time�NoWayToWaitForSocketError�
wait_for_read�wait_for_writec@seZdZdS)rN)�__name__�
__module__�__qualname__�rr�B/opt/alt/python35/lib/python3.5/site-packages/urllib3/util/wait.pyr
s��cCs
||�S)Nr)�fn�timeoutrrr�_retry_on_intr)srcCs�|dk	r"|dkr"||�S|dkr=td�}n
t�|}x�y||�SWqMttjfk
r�}z[|jdtjkr��n:|t�}|dkr�d}|td�kr�d}wMWYdd}~XqMXqMWdS)Nr�inf)�floatr�OSError�select�error�args�errnoZEINTR)rrZdeadline�errrr-s"


Fc
Cs�|r|rtd��g}g}|r9|j|�|rL|j|�ttj|||�}t||�\}}}	t|p�|p�|	�S)Nz2must specify at least one of read=True, write=True)�RuntimeError�appendrrr�bool)
�sock�read�writerZrcheckZwcheckrZrreadyZwreadyZxreadyrrr�select_wait_for_socketGs

r cs�|r|rtd��d}|r3|tjO}|rF|tjO}tj���j||��fdd�}tt||��S)Nz2must specify at least one of read=True, write=Truercs#|dk	r|d9}�j|�S)Ni�)�poll)�t)�poll_objrr�do_pollfs
z%poll_wait_for_socket.<locals>.do_poll)rr�POLLIN�POLLOUTr!�registerrr)rrrr�maskr$r)r#r�poll_wait_for_socketZs

r)cOstd��dS)Nzno select-equivalent available)r)r�kwargsrrr�null_wait_for_socketnsr+cCsDytj�}|jd�Wnttfk
r;dSYnXdSdS)NrFT)rr!�AttributeErrorr)r#rrr�_have_working_pollrs	r-cOs=t�rtanttd�r*tantat||�S)Nr)r-r)�wait_for_socket�hasattrrr r+)rr*rrrr.s			r.cCst|ddd|�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.
    rTr)r.)rrrrrr�scCst|ddd|�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.
    rTr)r.)rrrrrr�s)r
r)r�	functoolsrr�sysrr�ImportError�__all__�	Exceptionr�version_inforr r)r+r-r.rrrrrr�<module>s&