File: //lib64/python3.9/asyncio/__pycache__/unix_events.cpython-39.opt-1.pyc
a
    �DOg*�  �                   @   s�  d Z ddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
mZ ddl
mZ ddl
mZ ddl
mZ ddl
mZ dd	l
mZ dd
l
mZ ddl
mZ ddl
mZ dd
l
mZ ddlmZ dZe
jdkr�ed��dd� ZG dd� dej�ZG dd� dej �Z!G dd� dej"ej#�Z$G dd� dej%�Z&G dd� d�Z'G dd� de'�Z(d d!� Z)G d"d#� d#e'�Z*G d$d%� d%e*�Z+G d&d'� d'e*�Z,G d(d)� d)e'�Z-G d*d+� d+e'�Z.G d,d-� d-ej/�Z0eZ1e0Z2dS ).z2Selector event loop for Unix with signal handling.�    N�   )�base_events)�base_subprocess)�	constants)�
coroutines)�events)�
exceptions)�futures)�selector_events)�tasks)�
transports)�logger)�SelectorEventLoop�AbstractChildWatcher�SafeChildWatcher�FastChildWatcher�PidfdChildWatcher�MultiLoopChildWatcher�ThreadedChildWatcher�DefaultEventLoopPolicy�win32z+Signals are not really supported on Windowsc                 C   s   dS )zDummy signal handler.N� )�signum�framer   r   �+/usr/lib64/python3.9/asyncio/unix_events.py�_sighandler_noop*   s    r   c                       s�   e Zd ZdZd)� fdd�	Z� fdd�Zdd� Zd	d
� Zdd� Zd
d� Z	dd� Z
d*dd�Zd+dd�Zd,dd�Z
dd� Zd-ddddd�dd�Zd.dddddd�dd �Zd!d"� Zd#d$� Zd%d&� Zd'd(� Z�  ZS )/�_UnixSelectorEventLoopzdUnix event loop.
    Adds signal handling and UNIX Domain Socket support to SelectorEventLoop.
    Nc                    s   t � �|� i | _d S �N)�super�__init__�_signal_handlers)�self�selector��	__class__r   r   r   5   s    z_UnixSelectorEventLoop.__init__c                    sZ   t � ��  t�� s.t| j�D ]}| �|� qn(| jrVtjd| �d�t	| d� | j�
�  d S )NzClosing the loop z@ on interpreter shutdown stage, skipping signal handlers removal��source)r   �close�sys�
is_finalizing�listr    �remove_signal_handler�warnings�warn�ResourceWarning�clear�r!   �sigr#   r   r   r'