File: //usr/local/lib/python3.9/site-packages/kombu/__pycache__/pools.cpython-39.pyc
a
X>h� � @ s d Z ddlmZ ddlZddlmZ ddlmZ ddlm Z ddl
mZ dd lm
Z
dd
lmZ dZdgZg Ze� Zej�d
�Zdd� ZG dd� de�ZG dd� de�Zdd� ZG dd� de�Zeeed��ZG dd� de�Zeeed��Zdd� Z dd� Z!d$d d!�Z"d"d#� Z#dS )%zPublic resource pools.� )�annotationsN)�chain� )�Resource)�Producer)�EqualityDict)�register_after_fork)�lazy)�ProducerPool� PoolGroup�register_group�connections� producers� get_limit� set_limit�reset�
ZKOMBU_DISABLE_LIMIT_PROTECTIONc C s | � � d S �N)�clear��group� r �5/usr/local/lib/python3.9/site-packages/kombu/pools.py�_after_fork_cleanup_group s r c sd e Zd ZdZeZdZ� fdd�Zdd� Zdd� Zd d
� Z dd� Z
d
d� Zdd� Z� fdd�Z
� ZS )r
z*Pool of :class:`kombu.Producer` instances.Tc s0 || _ |�dd �p| j| _t� j|i |�� d S )Nr )r
�popr �super�__init__)�selfr
�args�kwargs�� __class__r r r s zProducerPool.__init__c C s | j jdd�S )NT)�block)r
�acquire�r r r r �_acquire_connection% s z ProducerPool._acquire_connectionc C s6 | � � }z| �|�W S ty0 |�� � Y n0 d S r )r% r �
BaseException�release)r �connr r r �create_producer( s zProducerPool.create_producerc C s
t | j�S r )r r) r$ r r r �new0 s zProducerPool.newc C s* | j r&t| j �D ]}| j�| �� � qd S r )�limit�rangeZ _resource�
put_nowaitr* )r �_r r r �setup3 s zProducerPool.setupc C s d S r r �r �resourcer r r �close_resource8 s zProducerPool.close_resourcec C sP t |�r|� }|jd u rL| �� }z|�|� W n tyJ |�� � Y n0 |S r )�callableZ_channelr% Zreviver&