관리-도구
편집 파일: wait.cpython-39.pyc
a t~�` � @ 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 �5/usr/lib/python3.9/site-packages/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"