U
ʗRe @ s d dl Z d dlZd dlZd dlmZ zd dlmZ W n ek
rT d dlmZ Y nX dddgZG dd de Z
ejd krd
d Zndd ZdddZ
dddZdd Zdd Zdd adddZdddZdS ) N)partial) monotonic)timeNoWayToWaitForSocketError
wait_for_readwait_for_writec @ s e Zd ZdS )r N)__name__
__module____qualname__ r r /builddir/build/BUILDROOT/alt-python38-pip-22.2.1-2.el8.x86_64/opt/alt/python38/lib/python3.8/site-packages/pip/_vendor/urllib3/util/wait.pyr s ) c C s | |S )Nr )fntimeoutr r r _retry_on_intr* s r c
C s |d krt d}n
t | }z
| |W S ttjfk
r } zF|jd tjkrR n.|t }|dk rhd}|t dkrxd }W Y qW 5 d }~X Y qX qd S )Ninfr )floatr OSErrorselecterrorargserrnoZEINTR)r r deadlineer r r r / s
Fc
C sd |s|st dg }g }|r&|| |r4|| ttj|||}t||\}}} t|p`|p`| S )N2must specify at least one of read=True, write=True)RuntimeErrorappendr r r bool)
sockreadwriter rcheckwcheckr rreadywreadyxreadyr r r select_wait_for_socketF s
r' c s^ |s|st dd}|r"|tjO }|r0|tjO }t | | fdd}tt||S )Nr r c s | d k r| d9 } | S )Ni )poll)tpoll_objr r do_polle s z%poll_wait_for_socket.