File: //usr/local/CyberPanel/lib64/python3.10/site-packages/urllib3/util/__pycache__/wait.cpython-310.pyc
o
��hG � @ s� d dl mZ d dlZd dlZd dlmZ ddgZ dddd�Z dddd�Zddd�Z dddd�a
dddd�Zdddd�ZdS )� )�annotationsN)�partial�
wait_for_read�wait_for_writeF�sock�
socket.socket�read�bool�write�timeout�float | None�returnc
C sb |s|st d��g }g }|r|�| � |r|�| � ttj|||�}||�\}}} t|p/|p/| �S )N�2must specify at least one of read=True, write=True)�RuntimeError�appendr �selectr )
r r r
r �rcheck�wcheck�fn�rready�wready�xready� r �G/usr/local/CyberPanel/lib/python3.10/site-packages/urllib3/util/wait.py�select_wait_for_socket! s
r c s^ |s|st d��d}|r|tjO }|r|tjO }t�� � � �| |� d � fdd�}t||��S )
Nr r �tr r
�list[tuple[int, int]]c s | d ur| d9 } � � | �S )Ni� )�poll)r ��poll_objr r �do_pollJ s
z%poll_wait_for_socket.<locals>.do_poll)r r r
r )r r �POLLIN�POLLOUTr �registerr )r r r
r �maskr r r r �poll_wait_for_socket9 s
r% c C s2 zt �� } | �d� W dS ttfy Y dS w )Nr FT)r r �AttributeError�OSErrorr r r r �_have_working_pollR s ��r( c C s( t � rtanttd�r
tat| |||�S )Nr )r( r% �wait_for_socket�hasattrr r )r r r
r r r r r) _ s
r) c C � t | d|d�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.
T)r r �r) �r r r r r r q � c C r+ )z�Waits for writing to be available on a given socket.
Returns True if the socket is readable, or False if the timeout expired.
T)r
r r, r- r r r r x r. )FFN)
r r r r r
r r r r
r )r
r )N)r r r r r
r )
�
__future__r r �socket� functoolsr �__all__r r% r( r) r r r r r r �<module> s( ��
�