File: //proc/self/root/lib/python3.6/site-packages/supervisor/__pycache__/socket_manager.cpython-36.pyc
3
�k�` � @ s6 d dl Z G dd� d�ZG dd� d�ZG dd� d�ZdS )� Nc @ s0 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 || _ |jdd �| _d S )N� on_delete)�object�getr )�selfr �kwargs� r �$/usr/lib/python3.6/socket_manager.py�__init__ s zProxy.__init__c C s | j r| j � d S )N)r )r r r r �__del__ s z
Proxy.__del__c C s t | j|�S )N)�getattrr )r �namer r r �__getattr__ s zProxy.__getattr__c C s | j S )N)r )r r r r �_get s z
Proxy._getN)�__name__�
__module__�__qualname__�__doc__r
r r r r r r r r s
r c @ s0 e Zd ZdZdd� Zdd� Zdd� Zdd � Zd
S )�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 s | j S )N)r )r r r r � get_count s zReferenceCounter.get_countc C s$ | j dkr| j� | j d7 _ d S )Nr � )r r )r r r r � increment"