Файловый менеджер - Редактировать - /opt/imh-python/lib/python3.9/site-packages/gunicorn/workers/__pycache__/geventlet.cpython-39.pyc
Ðазад
a j�h � @ s� d dl mZ d dlZd dlZd dlZzd dlZW n eyJ ed��Y n(0 d dlm Z e ej �e d�k rred��d dlmZmZ d dl mZ d dlmZ d d lmZ d dlZd d lmZ ejfdd�Zd d� Zdd� Zdd� ZG dd� de�ZdS )� )�partialNz2eventlet worker requires eventlet 0.24.1 or higher)� parse_versionz0.24.1)�hubs�greenthread)�GreenSocket)� trampoline)�ALREADY_HANDLED)�AsyncWorkerc C s\ z|| |||�W S t yT } z,|jd tjkr>t| dd� n� W Y d }~q d }~0 0 q d S )Nr T)�write)�OSError�args�errno�EAGAINr )ZfdoutZfdin�offset�nbytesZ_os_sendfile�e� r ��/root/rpmbuild/BUILDROOT/imh-python39-modules-3.9.7-92.el8.x86_64/opt/imh-python/lib/python3.9/site-packages/gunicorn/workers/geventlet.py�_eventlet_sendfile s r c C sz t j�|�}t j�� }z6| �� \}}|�|||�}|�t||� d\}}}W q t j yr | � � |�� Y dS 0 qdS )z� Serve requests forever. This code is nearly identical to ``eventlet.convenience.serve`` except that it attempts to join the pool at the end, which allows for gunicorn graceful shutdowns. )NNNN)�eventletZ greenpoolZ GreenPoolr Z getcurrent�accept�spawn�link�_eventlet_stop� StopServe�closeZwaitall)�sock�handleZconcurrency�poolZ server_gt�conn�addr�gtr r r �_eventlet_serve( s r"