a
t~` @ s d dl Z d dlZd dlZd dlmZ zd dlmZ W n eyR d dlmZ Y n0 g dZG dd de Z
ejdkrd d
Zndd
Zdd
dZ
dddZdd Zdd Zdd adddZdddZdS ) N)partial) monotonic)time)NoWayToWaitForSocketError
wait_for_readwait_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 )fntimeoutr 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 dkrvd }W Y d }~qW Y d }~qd }~0 0 qd S )Ninfr )floatr OSErrorselecterrorargserrnoZEINTR)r r Zdeadlineer r r r 0 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 ZrcheckZwcheckr ZrreadyZwreadyZxreadyr r r select_wait_for_socketG s
r! c s^ |s|st dd}|r"|tjO }|r0|tjO }t | | fdd}tt||S )Nr r c s | d ur| d9 } | S )Ni )poll)tZpoll_objr r do_pollf s z%poll_wait_for_socket.