GOOD SHELL MAS BOY
Server: Apache/2.4.52 (Ubuntu)
System: Linux vmi1836763.contaboserver.net 5.15.0-130-generic #140-Ubuntu SMP Wed Dec 18 17:59:53 UTC 2024 x86_64
User: www-data (33)
PHP: 8.4.10
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/supervisor/__pycache__/socket_manager.cpython-310.pyc
o

�a,_�@s6ddlZGdd�d�ZGdd�d�ZGdd�d�ZdS)�Nc@�0eZdZdZdd�Zdd�Zdd�Zdd	�Zd
S)�Proxyz` Class for wrapping a shared resource object and getting
        notified when it's deleted
    cKs||_|�dd�|_dS)N�	on_delete)�object�getr)�selfr�kwargs�r	�;/usr/lib/python3/dist-packages/supervisor/socket_manager.py�__init__szProxy.__init__cCs|jr	|��dSdS�N�r�rr	r	r
�__del__s�z
Proxy.__del__cCst|j|�Sr)�getattrr)r�namer	r	r
�__getattr__szProxy.__getattr__cC�|jSr)rrr	r	r
�_get�z
Proxy._getN)�__name__�
__module__�__qualname__�__doc__rrrrr	r	r	r
rsrc@r)�ReferenceCounterz8 Class for tracking references to a shared resource
    cKs|d|_|d|_d|_dS)N�on_non_zero�on_zeror)rr�	ref_count)rrr	r	r
rs


zReferenceCounter.__init__cCrr)rrr	r	r
�	get_countrzReferenceCounter.get_countcCs$|jdkr	|��|jd7_dS)Nr�)rrrr	r	r
�	increment"�
zReferenceCounter.incrementcCs:|jdkr	td��|jd8_|jdkr|��dSdS)Nrz.Illegal operation: cannot decrement below zeror)r�	Exceptionrrr	r	r
�	decrement's

�zReferenceCounter.decrementN)rrrrrrr r#r	r	r	r
rsrc@sXeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�ZdS)�
SocketManagera Class for managing sockets in servers that create/bind/listen
        before forking multiple child processes to accept()
        Sockets are managed at the process group level and referenced counted
        at the process level b/c that's really the only place to hook in
    cKs6|�dd�|_d|_d|_||_t|j|jd�|_dS)N�loggerF)rr)	rr%�socket�prepared�
socket_configr�_close�_prepare_socket�ref_ctr)rr(rr	r	r
r5s�zSocketManager.__init__cCsd|jt|�|jjfS)Nz<%s at %s for %s>)�	__class__�idr(�urlrr	r	r
�__repr__>s�zSocketManager.__repr__cCrr)r(rr	r	r
�configCrzSocketManager.configcCrr)r'rr	r	r
�is_preparedFrzSocketManager.is_preparedcCs$|j��|��t|j|jjd�S)Nr
)r+r �_require_preparedrr&r#rr	r	r
�
get_socketIr!zSocketManager.get_socketcCs|��|j��Sr)r2r+rrr	r	r
�get_socket_ref_countNs
z"SocketManager.get_socket_ref_countcCs|jstd��dS)NzSocket has not been prepared)r'r"rr	r	r
r2Rs�zSocketManager._require_preparedcCsd|js0|jr|j�d|j�|j��|_|j��r$|j�|j���n|j�tj�d|_dSdS)NzCreating socket %sT)	r'r%�infor(�create_and_bindr&�get_backlog�listen�	SOMAXCONNrr	r	r
r*Vs

�zSocketManager._prepare_socketcCs4|��|jr|j�d|j�|j��d|_dS)NzClosing socket %sF)r2r%r5r(r&�closer'rr	r	r
r)as


zSocketManager._closeN)
rrrrrr/r0r1r3r4r2r*r)r	r	r	r
r$.s	r$)r&rrr$r	r	r	r
�<module>s