|
Server : LiteSpeed System : Linux barito.iixcp.rumahweb.net 5.14.0-611.49.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Apr 21 16:39:08 EDT 2026 x86_64 User : elvh3918 ( 1528) PHP Version : 8.2.31 Disable Function : mail Directory : /usr/local/lib/python3.9/site-packages/celery/concurrency/__pycache__/ |
a
��Shn� � @ s� d Z ddlZddlZddlZddlZddlZddlZddlmZm Z m
Z
ddlmZ ddl
mZ ddlmZ ddlmZmZmZ ddlmZ dd lmZmZ dd
lmZ ddlmZmZ ddlm Z m!Z!m"Z"m#Z#m$Z$ dd
l%m&Z& ddl'm(Z(m)Z) ddl*mZ+ ddl,m-Z- ddl.m/Z/ ddl0m1Z1 ddl2m3Z3 ddl4m5Z5 ddl6m7Z7 ddl8m9Z: zddl;m<Z= dZ>W n2 e?�y� ej<fdd�Z=dZ>efdd�ZY n0 dZ@e7eA�ZBeBjCeBjD ZCZDeEejFejGh�ZHdZId ZJd!ZKd"ZLeLeLeKeKeLd#�ZMd$d%� eM�N� D �ZOe
d&d'�ZPd(d)� ZQd*d+� ZRd,d-� ZSeTed.��rFddddejUejVejWejXfd/d0�ZYn
d<d1d0�ZYddddeYfd2d3�ZZd4d5� Z[G d6d7� d7ej\�Z\G d8d9� d9ej]�Z]G d:d;� d;ej^�Z_dS )=a� Version of multiprocessing.Pool using Async I/O.
.. note::
This module will be moved soon, so don't use it directly.
This is a non-blocking version of :class:`multiprocessing.Pool`.
This code deals with three major challenges:
#. Starting up child processes and keeping them running.
#. Sending jobs to the processes and receiving results back.
#. Safely shutting down this system.
� N)�Counter�deque�
namedtuple)�BytesIO)�Integral)�HIGHEST_PROTOCOL)�pack�unpack�unpack_from)�sleep)�WeakValueDictionary�ref)�pool)�
isblocking�setblocking)�ACK�NACK�RUN� TERMINATE�
WorkersJoined)�_SimpleQueue)�ERR�WRITE)�pickle)�
SELECT_BAD_FD)�fxrange)�promise)�worker_before_create_process)�noop)�
get_logger)�state)�readTc C s( || |�}t |�}|dkr$|�|� |S �Nr )�len�write)�fd�buf�sizer! �chunk�n� r* �E/usr/local/lib/python3.9/site-packages/celery/concurrency/asynpool.py�__read__5 s
r, Fc C s || |� � �S �N)�getvalue)�fmtZiobufr r* r* r+ r
= s r
)�AsynPool� g @� � )N�default�fastZfcfsZfairc C s i | ]\}}||�qS r* r* )�.0�k�vr* r* r+ �
<dictcomp>W � r9 �Ack)�idr% �payloadc C s t �| �dkS )z(Return true if generator is not started.�GEN_CREATED)�inspect�getgeneratorstate)�genr* r* r+ �gen_not_started\ s rB c C s( z
| j }W n ty Y n0 |� S d S r- )�_writer�AttributeError)�job�writerr* r* r+ �_get_job_writera s
rG c C s t | t�r| S | �� S r- )�
isinstancer �fileno�r% r* r* r+ �_ensure_integral_fdj s rK �pollc C s( |� }|j } i }
| r8tt| �D ]}|
�|d�|B |
|<