File: //lib/python3/dist-packages/supervisor/__pycache__/socket_manager.cpython-310.pyc
o
�a,_ � @ s6 d dl Z G dd� d�ZG dd� d�ZG dd� d�ZdS )� Nc @ �0 e Zd ZdZdd� Zdd� Zdd� Zdd � Zd
S )�Proxyz` Class for wrapping a shared resource object and getting
notified when it's deleted
c K s || _ |�dd �| _d S )N� on_delete)�object�getr )�selfr �kwargs� r �;/usr/lib/python3/dist-packages/supervisor/socket_manager.py�__init__ s zProxy.__init__c C s | j r | � � d S d S �N�r �r r r r
�__del__ s �z
Proxy.__del__c C s t | j|�S r )�getattrr )r �namer r r
�__getattr__ s zProxy.__getattr__c C � | j S r )r r r r r
�_get � z
Proxy._getN)�__name__�
__module__�__qualname__�__doc__r r r r r r r r
r s r c @ r )�ReferenceCounterz8 Class for tracking references to a shared resource
c K s |d | _ |d | _d| _d S )N�on_non_zero�on_zeror )r r � ref_count)r r r r r
r s
zReferenceCounter.__init__c C r r )r r r r r
� get_count r zReferenceCounter.get_countc C s$ | j dkr | �� | j d7 _ d S )Nr � )r r r r r r
� increment"