Current File : //lib/python3.9/site-packages/pip/_vendor/urllib3/util/__pycache__/wait.cpython-39.pyc |
a
[��f � @ s� d dl Z d dlZd dlZd dlmZ zd dlmZ W n eyR d dlmZ Y n0 g d�ZG dd� de �Z
ejdkr�d d
� Zndd
� Zdd
d�Z
ddd�Zdd� Zdd� Zdd� addd�Zddd�ZdS )� N)�partial)� monotonic)�time)�NoWayToWaitForSocketError�
wait_for_read�wait_for_writec @ s e Zd ZdS )r N)�__name__�
__module__�__qualname__� r r �A/usr/lib/python3.9/site-packages/pip/_vendor/urllib3/util/wait.pyr s r )� � c C s | |�S )Nr )�fn�timeoutr r r �_retry_on_intr* s r c
C s� |d u rt d�}n
t� | }z
| |�W S ttjfy� } zR|jd tjkrP� n2|t� }|dk rfd}|t d�krvd }W Y d }~qW Y d }~qd }~0 0 qd S )N�infr )�floatr �OSError�select�error�args�errnoZEINTR)r r Zdeadline�er r r r 0 s
Fc
C sd |s|st d��g }g }|r&|�| � |r4|�| � ttj|||�}t||�\}}} t|p`|p`| �S )N�2must specify at least one of read=True, write=True)�RuntimeError�appendr r r �bool)
�sock�read�writer ZrcheckZwcheckr ZrreadyZwreadyZxreadyr r r �select_wait_for_socketG s
r! c s^ |s|st d��d}|r"|tjO }|r0|tjO }t�� � � �| |� � fdd�}tt||��S )Nr r c s | d ur| d9 } � � | �S )Ni� )�poll)�t�Zpoll_objr r �do_pollf s z%poll_wait_for_socket.<locals>.do_poll)r r ZPOLLINZPOLLOUTr"