HEX
Server: nginx/1.24.0
System: Linux prod-btpayments-io 6.14.0-1018-aws #18~24.04.1-Ubuntu SMP Mon Nov 24 19:46:27 UTC 2025 x86_64
User: ubuntu (1000)
PHP: 8.3.19
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/supervisor/__pycache__/socket_manager.cpython-312.pyc
�

k��c��H�ddlZGd�d�ZGd�d�ZGd�d�Zy)�Nc�(�eZdZdZd�Zd�Zd�Zd�Zy)�Proxyz` Class for wrapping a shared resource object and getting
        notified when it's deleted
    c�@�||_|jdd�|_y)N�	on_delete)�object�getr)�selfr�kwargss   �;/usr/lib/python3/dist-packages/supervisor/socket_manager.py�__init__zProxy.__init__s��������K��6���c�>�|jr|j�yy�N�r�r	s r�__del__z
Proxy.__del__s���>�>��N�N��r
c�.�t|j|�Sr)�getattrr)r	�names  r�__getattr__zProxy.__getattr__s���t�{�{�D�)�)r
c��|jSr)rrs r�_getz
Proxy._gets���{�{�r
N)�__name__�
__module__�__qualname__�__doc__rrrr�r
rrrs���7��*�r
rc�(�eZdZdZd�Zd�Zd�Zd�Zy)�ReferenceCounterz8 Class for tracking references to a shared resource
    c�:�|d|_|d|_d|_y)N�on_non_zero�on_zeror)r!r"�	ref_count)r	r
s  rrzReferenceCounter.__init__s"��!�-�0����i�(�����r
c��|jSr)r#rs r�	get_countzReferenceCounter.get_counts���~�~�r
c�l�|jdk(r|j�|xjdz
c_y)Nr�)r#r!rs r�	incrementzReferenceCounter.increment"s(���>�>�Q���������!��r
c��|jdkrtd��|xjdzc_|jdk(r|j�yy)Nrz.Illegal operation: cannot decrement below zeror')r#�	Exceptionr"rs r�	decrementzReferenceCounter.decrement'sB���>�>�Q���L�M�M����!����>�>�Q���L�L�N�r
N)rrrrrr%r(r+rr
rrrs����
��
r
rc�F�eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zy)�
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
    c��|jdd�|_d|_d|_||_t|j|j��|_y)N�loggerF)r"r!)	rr/�socket�prepared�
socket_configr�_close�_prepare_socket�ref_ctr)r	r2r
s   rrzSocketManager.__init__5sE���j�j��4�0��������
�*���'��K�K�T�-A�-A���r
c�h�d|j�dt|��d|jj�d�S)N�<z at z for �>)�	__class__�idr2�urlrs r�__repr__zSocketManager.__repr__>s)��&*�n�n�&(��h�&*�&8�&8�&<�&<�>�	>r
c��|jSr)r2rs r�configzSocketManager.configCs���!�!�!r
c��|jSr)r1rs r�is_preparedzSocketManager.is_preparedFs���}�}�r
c��|jj�|j�t|j|jj
��S)Nr)r5r(�_require_preparedrr0r+rs r�
get_socketzSocketManager.get_socketIs9������� ���� ��T�[�[�D�L�L�,B�,B�C�Cr
c�V�|j�|jj�Sr)rBr5r%rs r�get_socket_ref_countz"SocketManager.get_socket_ref_countNs!����� ��|�|�%�%�'�'r
c�2�|jstd��y)NzSocket has not been prepared)r1r*rs rrBzSocketManager._require_preparedRs���}�}��:�;�;�r
c��|js�|jr(|jjd|jz�|jj	�|_|jj
�r4|j
j|jj
��n)|j
jt
j�d|_yy)NzCreating socket %sT)	r1r/�infor2�create_and_bindr0�get_backlog�listen�	SOMAXCONNrs rr4zSocketManager._prepare_socketVs����}�}��{�{���� � �!5��8J�8J�!J�K��,�,�<�<�>�D�K��!�!�-�-�/����"�"�4�#5�#5�#A�#A�#C�D����"�"�6�#3�#3�4� �D�M�r
c���|j�|jr(|jjd|jz�|jj�d|_y)NzClosing socket %sF)rBr/rHr2r0�closer1rs rr3zSocketManager._closeasJ����� ��;�;��K�K���0�4�3E�3E�E�F���������
r
N)
rrrrrr<r>r@rCrErBr4r3rr
rr-r-.s5����>�
"��D�
(�<�	!�r
r-)r0rrr-rr
r�<module>rOs&��
���&��08�8r