<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
3
nf\                 @   s   d dl Z d dlmZ d dlZd dlZyd dlmZ W n  ek
rT   d dlmZ Y nX dddgZG dd de	Z
ejdkrdd Zndd ZdddZdddZdd Zdd Zdd adddZdddZdS )     N)partial)	monotonic)timeNoWayToWaitForSocketErrorwait_for_readwait_for_writec               @   s   e Zd ZdS )r   N)__name__
__module____qualname__ r   r   /usr/lib/python3.6/wait.pyr      s         c             C   s   | |S )Nr   )fntimeoutr   r   r   _retry_on_intr)   s    r   c             C   s   |d krt d}n
t | }xry| |S  ttjfk
r } zB|jd tjkrR n(|t  }|dk rhd}|t dkrxd }wW Y d d }~X qX qW d S )Ninfr   )floatr   OSErrorselecterrorargserrnoZEINTR)r   r   Zdeadlineer   r   r   r   -   s    


Fc       
      C   sh   | r| rt dg }g }|r*|j|  |r8|j|  ttj|||}t||\}}}	t|pd|pd|	S )Nz2must specify at least one of read=True, write=True)RuntimeErrorappendr   r   r   bool)
sockreadwriter   ZrcheckZwcheckr   ZrreadyZwreadyZxreadyr   r   r   select_wait_for_socketD   s    

r    c                sb   | r| rt dd}|r&|tjO }|r4|tjO }tj   j| |  fdd}tt||S )Nz2must specify at least one of read=True, write=Truer   c                s   | d k	r| d9 }  j | S )Ni  )poll)t)poll_objr   r   do_pollc   s    z%poll_wait_for_socket.<locals>.do_poll)r   r   ZPOLLINZPOLLOUTr!   registerr   r   )r   r   r   r   maskr$   r   )r#   r   poll_wait_for_socketW   s    

r'   c              O   s   t dd S )Nzno select-equivalent available)r   )r   kwargsr   r   r   null_wait_for_socketk   s    r)   c              C   s:   yt j } t| jd W n ttfk
r0   dS X dS d S )Nr   FT)r   r!   r   AttributeErrorr   )r#   r   r   r   _have_working_pollo   s    r+   c              O   s*   t  rtanttdrtantat| |S )Nr   )r+   r'   wait_for_sockethasattrr   r    r)   )r   r(   r   r   r   r,   |   s    
r,   c             C   s   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      s    c             C   s   t | d|dS )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   r      s    )r   r   )FFN)FFN)N)N)r   	functoolsr   r   sysr   r   ImportError__all__	Exceptionr   version_infor   r    r'   r)   r+   r,   r   r   r   r   r   r   <module>   s&   





