HEX
Server: LiteSpeed
System: Linux s787.bom1.mysecurecloudhost.com 4.18.0-477.13.1.lve.el8.x86_64 #1 SMP Thu Jun 1 16:40:47 EDT 2023 x86_64
User: mobilech (5348)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: //opt/saltstack/salt/lib/python3.10/site-packages/aiohttp/__pycache__/worker.cpython-310.pyc
o

;j:!�@sdZddlZddlZddlZddlZddlZddlZddlmZddl	m
Z
mZmZddl
mZddlmZddlmZdd	lmZdd
lmZddlmZe
rXddlZejZnz	ddlZejZWn
eyndZeZYnwdZGd
d�dej�Z Gdd�de �Z!dS)z%Async gunicorn worker for aiohttp.web�N)�	FrameType)�
TYPE_CHECKING�Any�Optional)�AccessLogFormat)�base)�web�)�
set_result)�Application)�AccessLogger)�GunicornWebWorker�GunicornUVLoopWebWorkercs�eZdZejZejZde	de	ddf�fdd�Z
d"�fdd�Zd"d	d
�Zd"dd�Z
d#dd�Z	d$ded
ddfdd�Zd"dd�ZdededBddfdd�ZdededBddfdd�Zede	ddfdd��Zdedefd d!�Z�ZS)%r
�args�kw�returnNcs(t�j|i|��d|_d|_d|_dS�Nr)�super�__init__�_task�	exit_code�_notify_waiter)�selfrr��	__class__��B/opt/saltstack/salt/lib/python3.10/site-packages/aiohttp/worker.pyr*s
zGunicornWebWorker.__init__csHzt����Wn	tyYnwt��|_t�|j�t���dS�N)	�asyncio�get_event_loop�close�RuntimeErrorZnew_event_loop�loopZset_event_loopr�init_process�rrrrr#1s�
zGunicornWebWorker.init_processcCsp|j�|���|_z	|j�|j�Wnty!|j�d�Ynw|j�|j���|j�	�t
�|j�dS)NzException in gunicorn worker)
r"Zcreate_task�_runrZrun_until_complete�	Exception�log�	exceptionZshutdown_asyncgensr �sys�exitrr$rrr�run>s�
zGunicornWebWorker.runc�s��d}t|jt�r
|j}n/t�|j�stjdkr4t�|j�r4|��IdH}t|tj	�r1|}|j
}n|}ntd|j����|durc|jj
rH|jjnd}tj	||j|jj||�|jj�|jjddd�}|��IdH|jjrt|�|j�nd}|}|dus~J�|j}|dus�J�|jD]}tj|||d�}|��IdHq�t��}	zA|jr�|��|j}
|j r�|
|j kr�d|_|j�!d|�n|	t��kr�|j"t�#�kr�d|_|j�!d	|�n|�$�IdH|js�Wn	t%y�Ynw|�&�IdHdS)
N)��zSwsgi app should be either Application or async function returning Application, got �d�_)�loggerZkeepalive_timeout�
access_log�access_log_formatZshutdown_timeout)Zssl_contextFzMax requests, shutting down: %sz!Parent changed, shutting down: %s)'�
isinstance�wsgir�inspectZiscoroutinefunctionr)�version_inforrZ	AppRunner�appr!�cfgZ	accesslogr'r1Z	keepalive�_get_valid_log_formatr2Zgraceful_timeout�setupZis_ssl�_create_ssl_context�serverZsocketsZSockSite�start�os�getpid�alive�notifyZrequests_countZmax_requests�infoZppid�getppid�_wait_next_notifyr&Zcleanup)rZrunnerr7r4r1�ctxr<�sock�site�pidZcntrrrr%Jsv�����

���
�zGunicornWebWorker._run�asyncio.Future[bool]cCs>|��|j}|dus
J�|��|_}|j�d|j|�|S)Ng�?)�_notify_waiter_doner"Z
create_futurerZ
call_later)rr"�waiterrrrrD�sz#GunicornWebWorker._wait_next_notifyrKcCs8|dur|j}|durt|d�||jurd|_dSdS)NT)rr
)rrKrrrrJ�s


�z%GunicornWebWorker._notify_waiter_donecCs�|j�tj|jtjd�|j�tj|jtjd�|j�tj|jtjd�|j�tj|j	tjd�|j�tj
|jtj
d�|j�tj|j
tjd�t�tjd�t�tj
d�t�tjtj�dS�NF)r"Zadd_signal_handler�signal�SIGQUIT�handle_quit�SIGTERMZhandle_exit�SIGINT�SIGWINCHZhandle_winch�SIGUSR1Zhandle_usr1�SIGABRT�handle_abort�siginterrupt�SIGCHLD�SIG_DFLr$rrr�init_signals�s*������zGunicornWebWorker.init_signals�sig�framecCsd|_|j�|�|��dSrL)r@r8Z
worker_intrJ�rrZr[rrrrO�szGunicornWebWorker.handle_quitcCs&d|_d|_|j�|�t�d�dS)NFr	)r@rr8Zworker_abortr)r*r\rrrrU�szGunicornWebWorker.handle_abortr8�
SSLContextcCs\tdurtd��t�|j�}|�|j|j�|j|_|j	r#|�
|j	�|jr,|�|j�|S)z~Creates SSLContext instance for usage in asyncio.create_server.

        See ssl.SSLSocket.__init__ for more details.
        NzSSL is not supported.)
�sslr!r]�ssl_version�load_cert_chain�certfile�keyfile�	cert_reqs�verify_mode�ca_certs�load_verify_locations�ciphers�set_ciphers)r8rErrrr;�sz%GunicornWebWorker._create_ssl_context�
source_formatcCs(||jkr|jSt�d|�rtd��|S)Nz%\([^\)]+\)z�Gunicorn's style options in form of `%(name)s` are not supported for the log formatting. Please use aiohttp's format specification to configure access log formatting: http://docs.aiohttp.org/en/stable/logging.html#format-specification)�DEFAULT_GUNICORN_LOG_FORMAT�DEFAULT_AIOHTTP_LOG_FORMAT�re�search�
ValueError)rrirrrr9�s
�z'GunicornWebWorker._get_valid_log_format�rN)rrIr)�__name__�
__module__�__qualname__rZ
LOG_FORMATrk�GunicornAccessLogFormat�defaultrjrrr#r+r%rDrrJrY�intrrOrU�staticmethodr;�strr9�
__classcell__rrrrr
&s(


D��
�
&	r
cseZdZd�fdd�Z�ZS)rrNcsHddl}zt����Wn	tyYnwt�|���t���dSr)	�uvlooprrr r!Zset_event_loop_policyZEventLoopPolicyrr#)rryrrrr#�s�z$GunicornUVLoopWebWorker.init_processro)rprqrrr#rxrrrrr�sr)"�__doc__rr5r>rlrMr)�typesr�typingrrrZgunicorn.configrrsZgunicorn.workersrZaiohttprZhelpersr
Zweb_apprZweb_logrr^r]�ImportError�object�__all__ZWorkerr
rrrrr�<module>s:
�T